如题,dbms_sql我用过,功能比较全面,好象在develop2000(form)中不支持,
如何在form中使用动态查询?execute immediate sqlstr未用过,谁能帮忙解释一下
execute immediate sqlstr的详细用法吗?
sqlstr是你要执行的语句
execute immediate sqlstr;这样用就是了,必须8i以后的版本才能用
execute immediate的意思就是db在执行该sqlstr语句的时候,不会对sql语句进行语法分析,而直接执行
回答:
execute immediate只能完成一些简单的语句,而且语句中不能传入变量
dbms_sql则是全面的,所有的动态sql都可以完成
可以把execute immediate理解为dbms_sql的简版。
execute immediate 的效率较高。
其实他已经可以在高版本的oracle中代替dbms_sql。
dbms_sql使用比较麻烦。
我来澄清一些问题
1、execute immediate的效率比dbms_sql低
这是因为execute immediate每次都要进行语句的软分析,所以效率低,所以execute immediate不适合放到循环中。如果不信,自己做测试。
2、execute immediate可以使用变量
如execute immediate select count(*) from tab where uid=:id using myid into nums;
3、dbms_sql包的功能远比execute immediate强大,可以实现动态变量传递。
为何不用execute immediate str