什么时候会用到动态sql呢,最近小弟在学,但是具体什么时候会用大家能举几个例子吗?
解决方案 »
- oracle 导入数据时 出错:导出已截断 LOB 的定义
- Oracle新手,求Oracle经典教材,1到2本
- 请问一下各位Oracle老师们在这个领域,都考取的是什么ORACLE认证???
- 在存储过程中,如何判断SELECT后是否有记录?
- ORA-01555:快照过旧:回退段号 在名称为“”过小。
- 数据库入门问题:oracle中的数据库问题
- 新手问:ORACLE 9i中文版一共是几张盘,分几种版本?我应该买什么版本?谢谢!
- oracleTNSlistenser80不能自动打开???????????
- 请教负载均衡、安全性高的部署方案
- ORACLE怎样查询一个字段,但是这个字段同时满足另外两个字段的取值条件,并且as别名
- 嵌套执行SQL的问题
- 请教,将MS-SQL 转换为Orcale 多谢啦
select要从不同的表,表名是个变量的情况
或者
如in 变量之类的
在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
此贴你可以参考下
比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
example:DECLARE
V_SQL VARCHAR2(1000);
BEGIN
EXECUTE IMMEDIATE 'create table test(n number)';
FOR I IN 1 .. 5 LOOP
EXECUTE IMMEDIATE 'insert into test values(:1)'
USING I;
END LOOP;
COMMIT;
END;
/
2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
我补充两点。
在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
动态SQL。静态SQL和动态SQL的比较:
1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL