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 /
  • 相关阅读:
    iOS-禁止scrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动
    MongoDB安装
    Vue运用
    egg-middleware 中间件
    如何判断扫码的客户端是微信还是支付宝
    node 短信接口的调用
    Mui 长按保存图片
    egg-sequelize --- nodejs
    egg-mongoose --- nodejs
    Mongoose 基本用法
  • 原文地址:https://www.cnblogs.com/leny/p/5599160.html
Copyright © 2011-2022 走看看