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 /
  • 相关阅读:
    Linux命令——find
    Linux命令——locate
    python模块:datetime
    python模块:json
    python模块:shelve
    python模块:shutil
    python模块:sys
    python:OS模块
    str.index()与str.find()比较
    python模块:re
  • 原文地址:https://www.cnblogs.com/leny/p/5599160.html
Copyright © 2011-2022 走看看