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 /
  • 相关阅读:
    转:Image与byte之间互转
    转:C#清除回收站
    设计模式:装饰模式
    设计模式:策略模式
    设计模式:简单工厂
    分享一套简单的CodeSmith三层模板
    CodeSmith读取数据库
    从学CodeSmith谈程序员学习方法
    Elasticsearch常用基础操作
    idea java 1.5 过时
  • 原文地址:https://www.cnblogs.com/leny/p/5599160.html
Copyright © 2011-2022 走看看