在PL/SQL中使用游标动态sql和绑定变量的小例子
Posted leny
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在PL/SQL中使用游标动态sql和绑定变量的小例子相关的知识,希望对你有一定的参考价值。
需求:查询并输出30号部门的雇员信息
方式一:使用 loop...fetch
1 SET serveroutput ON; 2 DECLARE 3 CURSOR c_emp IS 4 SELECT * FROM emp WHERE deptno = 30; 5 v_emp emp%rowtype; 6 BEGIN 7 OPEN c_emp; 8 loop 9 fetch c_emp INTO v_emp; 10 exit WHEN c_emp%notfound; 11 dbms_output.put_line(v_emp.empno||‘ ‘||v_emp.ename||‘ ‘||v_emp.job||‘ ‘||v_emp.mgr||‘ ‘||v_emp.hiredate||‘ ‘||v_emp.sal||‘ ‘||v_emp.comm||‘ ‘||v_emp.deptno); 12 end loop; 13 close c_emp; 14 END; 15 /
方式二:使用游标 for 循环
1 SET serveroutput ON; 2 DECLARE 3 CURSOR c_emp IS 4 SELECT * FROM emp WHERE deptno = 30; 5 v_emp emp%rowtype; 6 BEGIN 7 FOR e IN c_emp loop 8 dbms_output.put_line(e.empno||‘ ‘||e.ename||‘ ‘||e.job||‘ ‘||e.mgr||‘ ‘||e.hiredate||‘ ‘||e.sal||‘ ‘||e.comm||‘ ‘||e.deptno); 9 end loop; 10 END; 11 /
方式三:使用动态sql和绑定变量
1 SET serveroutput ON; 2 DECLARE 3 TYPE emp_cursor IS REF CURSOR; 4 c_emp emp_cursor; 5 v_emp emp%rowtype; 6 BEGIN 7 OPEN c_emp FOR ‘select * from emp where deptno =:n‘ USING 30; 8 loop 9 fetch c_emp INTO v_emp; 10 exit WHEN c_emp%notfound; 11 dbms_output.put_line(v_emp.empno||‘ ‘||v_emp.ename||‘ ‘||v_emp.job||‘ ‘||v_emp.mgr||‘ ‘||v_emp.hiredate||‘ ‘||v_emp.sal||‘ ‘||v_emp.comm||‘ ‘||v_emp.deptno); 12 END loop; 13 close c_emp; 14 END; 15 /
以上是关于在PL/SQL中使用游标动态sql和绑定变量的小例子的主要内容,如果未能解决你的问题,请参考以下文章