PL/SQL中直接写SQL语句和利用EXECUTE IMMEDIATE方法的区别

来源:互联网 发布:手机知乎怎样发表文章 编辑:程序博客网 时间:2024/05/22 19:57

一、在PL/SQL中在执行SQL语句时可以直接写SQL或者可以把一个SQL语句拼成一个字符串,如下:

select * from emp;    --直接编写SQL语句

v_sql := 'select * from emp';     --编写sql语句字符串

execute immediate v_sql;

一般来说直接写SQL的性能是高于拼字符串的,因为如果执行拼字符串的需要内部自动调动oracle机制,先解析字符串映射成SQL语句然后再执行。


拼SQL的方式有好处。

  1、SQL语句是一个字符串可以动态拼接,根据不同的条件来改变SQL语句,这是直接写SQL所不能达到的。

  2、可以动态的对参数传递值,这是最大的优势。例如:

v_sql:='select * from emp e where e.job=:1 and e.deptno=:2';  

EXECUTE IMMEDIATE v_sql USING 'MANAGER','20';

“:”称绑定变量指示符,它是用户放入查询中的占位符,它会告诉Oracle现在生成一个方案框架,实际执行语句的时候会提供该使用的实际值。



0 0
原创粉丝点击