SQL语句有两种方式,三种写法 Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding) 4)由于动态SQL是在运行时刻进行确定的,所以相对
SQL语句有两种方式,三种写法
Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding)
4)由于动态SQL是在运行时刻进行确定的,所以相对于静态而言,其更多的会损失一些系统性能来换取其灵活性。
静态和动态 只是不同的方式 涉及的是前期和后期联编
对象信息之类的,语法检查,对象检查
三种写法
固定SQL,绑定变量SQL,硬编码SQL
动态分别这三种
1 sql='select * from table where name='李三''
2 sql='select * from table where name=:p_name'
3 sql='select * from table where name='||p_name;
declare
vc_sql varchar2(1000);
i number;
begin
i := 10;
vc_sql := 'select /*+ demo 1*/ * from t where object_id=10';
execute immediate vc_sql;
vc_sql := 'select /*+ demo 2*/ * from t where object_id=:1';
execute immediate vc_sql using i;
vc_sql := 'select /*+ demo 3*/ * from t where object_id='||i;
execute immediate vc_sql;
i := 20;
vc_sql := 'select /*+ demo 1*/ * from t where object_id=10';
execute immediate vc_sql;
vc_sql := 'select /*+ demo 2*/ * from t where object_id=:1';
execute immediate vc_sql using i;
vc_sql := 'select /*+ demo 3*/ * from t where object_id='||i;
execute immediate vc_sql;
end;
/
SQL> select sql_text from v$sqlarea where sql_text like 'select /*+ demo %' order by sql_text;
SQL_TEXT
------------------------------
select /*+ demo 1*/ * from t where object_id=10
select /*+ demo 1*/ * from t where object_id=20
select /*+ demo 2*/ * from t where object_id=:1
select /*+ demo 3*/ * from t where object_id=10
select /*+ demo 3*/ * from t where object_id=20
如果重复执行 条件不变的话 3种方式都能重用,
如果 条件发生变化,
第一种字面写死的能重用,
第二种 绑定变量 基本能重用 ORACLE 10G以后 会窥视变量的值, 如果存数据分布信息 可能重新生成执行计划.
第三种参数化 会因为条件值发生改变不发生重用,
静态SQL语句 只是取消掉了引号的 ,没有execute immediate 基本跟上面形似一样

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)