zoukankan      html  css  js  c++  java
  • 在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 /
  • 相关阅读:
    梦断代码第8章总结
    <<梦断代码>>读后感
    站立会议第四篇
    购买一批书的最低价格
    NABCD分析
    首尾相连的二维数组求最大字数组的和
    站立会议第三篇
    站立会议第二篇
    站立会议第一篇
    牛客算法周周练16D Rinne Loves Dynamic Graph(分层图最短路 + 堆优化dijkstra)
  • 原文地址:https://www.cnblogs.com/leny/p/5599160.html
Copyright © 2011-2022 走看看