首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 預存程序執行實例:SQL*Plus 呼叫 REF CURSOR 輸出

     編輯:Oracle 教學

Oracle 預存程序執行實例:SQL*Plus 呼叫 REF CURSOR 輸出

在 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

SQL*Plus 執行步驟

VAR rc REFCURSOR;
EXEC gokul_proc(1, 'GOKUL', :rc);
PRINT rc;

關鍵點說明

  1. VAR rc REFCURSOR:宣告一個 SQL*Plus 綁定變數,型別為 REF CURSOR
  2. EXEC ... :rc:呼叫程序,將輸出游標繫結至 :rc
  3. PRINT rc:將游標結果格式化輸出至螢幕

常見問題

  • 若套件 G_PKG_REFCUR 不存在,需先建立:
    CREATE OR REPLACE PACKAGE G_PKG_REFCUR AS TYPE rcDataCursor IS REF CURSOR; END;
  • 若使用 JDBC/ODBC/ORM 框架呼叫,對應 OracleTypes.CURSOR 註冊輸出參數即可
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved