oracle學習筆記(二十二) REF 動態游標

2022-01-12 09:02:44 字數 1493 閱讀 7965

--宣告

$cursor_name$ sys_refcursor

--開啟動態游標

open $cursor_name$ is 查詢語句;

--關閉游標

close $cursor_name$;

--宣告動態游標型別

type $type_name$ is ref cursor;

--宣告乙個動態游標變數

$v_cursor_name$ type_my_ref;

動態游標可以獲得不同的結果集,可以設定條件,返回不同的結果集,一般和過程一起使用

--建立過程list

create or replace procedure list(result_set in out sys_refcursor, which in number)

is

begin

--開啟動態游標時在為它指定查詢語句

--1就是返回員工表,其他就返回部門表

if which=1 then

open result_set for select * from employee;

else

open result_set for select * from department;

end if;

end;

/--呼叫list過程,根據輸入的數字輸出某個表的全部資訊

declare

--宣告乙個動態游標型別

type type_my_ref is ref cursor;

--宣告乙個動態游標變數

my_ref type_my_ref;

emp employee%rowtype;

dept department%rowtype;

which number default &請輸入;

begin

--得到乙個查詢結果集

list(my_ref, which);

loop

if which=1 then /* handle employee */

fetch my_ref into emp;

exit when my_ref%notfound;

dbms_output.put_line(emp.empno||','||emp.ename||','||emp.job||','||emp.sal);

else /* handle department */

fetch my_ref into dept;

exit when my_ref%notfound;

dbms_output.put_line(dept.deptno||','||dept.dname||','||dept.loc);

end if;

end loop;

--close cursor

close my_ref;

end;

/

二十二 Oracle學習筆記 Oracle異常

一 oralce異常 1.oracle低層定義了很多異常,每個異常都有乙個唯一的編碼,這些異常之中,有一些是比較常見的,oracle 給這些異常定義了名稱,可以直接使用,其他沒有名稱只有編碼的不能直接使用。2.異常的分類 1 預定義異常 既有編碼又有名稱的異常是預定義異常,此類異常可以直接使用 2 ...

c語言學習筆記二十二

自動處理標頭檔案的依賴關係 all test34 test34 test34.o test33.o test31.o gcc o test34.o test34.c test29.h test30.h test32.h test33.o test33.c test32.h test29.h test...

c語言學習筆記二十二

自動處理標頭檔案的依賴關係 all test34 test34 test34.o test33.o test31.o gcc o test34.o test34.c test29.h test30.h test32.h test33.o test33.c test32.h test29.h test...