oracle 返回值為遊標的儲存過程
阿新 • • 發佈:2018-12-14
先建立一個包
create or replace package MYPACKAGE as
--定義包中的遊標變數
type empcursor is ref cursor;
--定義包中的方法
procedure queryEmpList(dno in number,empList out empcursor);
end MYPACKAGE;
建立一個包體
--建立一個包體 create or replace package body MYPACKAGE is --實現包的方法 procedure queryEmpList(dno in number,empList out empcursor) as begin --將查詢資料封裝裝入遊標 open empList for select * from emp where deptno = dno; end queryEmpList; end MYPACKAGE;
pl/sql呼叫
-- Created on 2018/10/11 by 19135 declare --定義接收返回值的遊標 cue sys_refcursor; --迴圈時使用的變數 e emp%rowtype; begin --通過包名呼叫該包下面的方法 MYPACKAGE.queryEmpList(30,cue); loop fetch cue into e; exit when cue%notfound; --迴圈控制檯輸出遊標中的值 dbms_output.put_line(e.ename); end loop; end;