SQL>--绑定变量在匿名块中的使用 declare 2 var_ename emp.ename%type; 3 begin 4 select ename into var_ename from emp where empno=&empno; 5 dbms_output.put_line('员工姓名为:'||var_ename); 6 exception when no_data_found then 7 dbms_output.put_line('未找到该员工'); 8 end; 9 / 输入 empno 的值: 7369 原值 4: select ename into var_ename from emp where empno=&empno; 新值 4: select ename into var_ename from emp where empno=7369; 员工姓名为:SMITH
很多地方都可以用绑定变量啊,不一定是动态SQL中,只要指定绑定的变量参数就可以了, select * from emp where empno=:empno;
在plsql块的sql中使用变量,会自动解析为绑定变量
本帖最后由 wildwave 于 2010-09-14 00:41:11 编辑
多谢楼上各位。果然如此,我之前有所误解了,认为只有通过execute immediate 'select xxx' using v; 才能绑定到变量,其实静态sql也是自动绑定变量的。
declare
2 var_ename emp.ename%type;
3 begin
4 select ename into var_ename from emp where empno=&empno;
5 dbms_output.put_line('员工姓名为:'||var_ename);
6 exception when no_data_found then
7 dbms_output.put_line('未找到该员工');
8 end;
9 /
输入 empno 的值: 7369
原值 4: select ename into var_ename from emp where empno=&empno;
新值 4: select ename into var_ename from emp where empno=7369;
员工姓名为:SMITH
select * from emp where empno=:empno;
才能绑定到变量,其实静态sql也是自动绑定变量的。