在 SQL*Plus 中執行帶有 OUT REF CURSOR 參數的預存程序,需先宣告綁定變數,執行後再用 PRINT 顯示結果集。以下為完整範例。
CREATE OR REPLACE PROCEDURE gokul_proc(
pId IN NUMBER,
pName IN VARCHAR2,
OutCur OUT G_PKG_REFCUR.rcDataCursor -- 假設套件中已定義 REF CURSOR 型別
) IS
BEGIN
OPEN OutCur FOR
SELECT * FROM gokul_table ob
WHERE ob.active_status = 'Y'
AND ob.id = pId
AND ob.name = pName;
END;
/
-- 注意:原文 active_staus 拼寫錯誤,已修正為 active_status;pNname 修正為 pName
VAR rc REFCURSOR;
EXEC gokul_proc(1, 'GOKUL', :rc);
PRINT rc;
VAR rc REFCURSOR:宣告一個 SQL*Plus 綁定變數,型別為 REF CURSOREXEC ... :rc:呼叫程序,將輸出游標繫結至 :rcPRINT rc:將游標結果格式化輸出至螢幕G_PKG_REFCUR 不存在,需先建立:CREATE OR REPLACE PACKAGE G_PKG_REFCUR AS TYPE rcDataCursor IS REF CURSOR; END;OracleTypes.CURSOR 註冊輸出參數即可