日期:2014-05-17  浏览次数:20765 次

Oracle的字面量与绑定变量
1、能举例解释下oracle的字面量与绑定变量?
2、什么情况属于SQL语句是动态生成的?
3、什么情况属于实用字面量而不是绑定变量的情况?
谢谢!

------解决方案--------------------
绑定变量是在编译后且在执行过程中才确定的变量,字面量是在编译之前就确定了的
例如
select * from emp where deptno=:1 ----:1这就是绑定变量,可以代表任何值
select * from emp where deptno=10 ----10就是字面量

sql语句在ORACLE 分静态sql和动态sql,静态SQL在执行之前就确定了,动态sql在执行的时候才确定
例如
select * from emp where deptno=10 ---这就是静态SQL
--------------------------------------------------
v_sql:='select * from emp where deptno=:1'
execute immediate v_sql using 10;----这个就是动态SQL并且使用了绑定变量(这个代码块只是一部分) 动态sql通常都是采用拼接字符串生成的

我印象里就是这样的,可能不是很全。但我记得tom的书里有专门介绍绑定变量的使用和动态sql的使用介绍得比较详细,你可以在网上搜下tom的书