--宣告
$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...