程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 在PL/SQL中使用游標、動態sql和綁定變量的小例子,plsql

在PL/SQL中使用游標、動態sql和綁定變量的小例子,plsql

編輯:Oracle教程

在PL/SQL中使用游標、動態sql和綁定變量的小例子,plsql


需求:查詢並輸出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 /

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved