存儲過程及其輸出
回答
返回遊標變量;用SELECT .. FROM DUAL打開您希望從過程返回的值的遊標變量。
該過程將返回一個遊標,返回包含這些值的單個行。
從你的程序做
OPEN resultsCursor_ FOR
Select 1 As aValue FROM DUAL;
OR
CREATE OR REPLACE PROCEDURE GetAValue
(
results_ OUT SYS_REFCURSOR
)
IS
MY_COUNT_ INT;
BEGIN
MY_COUNT_ := 10;
OPEN results_ FOR
SELECT MY_COUNT_ AS MyCount FROM DUAL;
END GetAValue;
過程不能返回一個值;你需要一個功能來做到這一點。
如果你真的想要一個程序,「給」遊標返回給調用者,可以 使用這樣的事情:
--Declare this type in a package X
--The caller must have access to the package X.
TYPE ref_cursor IS REF CURSOR;
CREATE OR REPLACE
PROCEDURE test (
p_param1 IN VARCHAR2,
p_cur OUT X.REF_CURSOR,
p_error_code OUT NUMBER,
p_error_message OUT VARCHAR2
)
AS
BEGIN
OPEN p_cur FOR
SELECT * FROM TABLE;
EXCEPTION
WHEN OTHERS THEN
p_error_code := SQLCODE;
p_error_message := SQLERRM;
END;
如果沒有錯誤設置,那麼調用者可以執行該光標並針對它提取行。
經過這麼多次嘗試仍然沒有運氣。也許你可以指出,哪裏出了問題,請。 – user1970875
哪裏出問題了? 規格: 創建或更換包裝CTI_MATRIX.AMD AS TYPE REF_CURSOR IS REF CURSOR; PROCEDURE AMD_NEEDMSG(v_CRN IN VARCHAR2,return_recordset OUT REF_CURSOR); END AMD; 體: CREATE OR REPLACE PACKAGE BODY CTI_MATRIX.AMD AS PROCEDURE AMD_NEEDMSG(v_CRN IN VARCHAR2,return_recordset OUT REF_CURSOR) IS BEGIN - END AMD_NEEDMSG; END AMD; TOAD失敗塊: DECLARE RETURN_RECORDSET AMD.REF_CURSOR;開始 RETURN_RECORDSET:= NULL; CTI_MATRIX.AMD.AMD_NEEDMSG('123456789',RETURN_RECORDSET); END; 錯誤:PLS-00382表達式是錯誤的類型行5 – user1970875
是;哪一行導致錯誤?我在11G中一直使用這個例子。如果你可以發佈代碼,我可以在這裏進行測試。謝謝 –
- 1. 輸出的存儲過程
- 2. 存儲過程不給出輸出
- 3. 使用存儲過程輸出參數
- 4. MySQL的存儲過程:輸出參數
- 5. 執行存儲過程輸出腳本
- 6. 多個存儲過程輸出
- 7. 存儲過程的輸出參數
- 8. PHP + Oracle存儲過程(多輸出)
- 9. 調用帶輸出的存儲過程
- 10. ADO.Net和存儲過程輸出參數
- 11. 德爾福存儲過程輸出
- 12. 從存儲過程輸出中選擇
- 13. 存儲過程輸出參數asp.net c#
- 14. 存儲過程 - 輸出臨時表
- 15. 存儲過程輸出參數
- 16. 將存儲過程的輸出
- 17. INSERT INTO的輸出存儲過程
- 18. 存儲過程輸出值到變量
- 19. Azure存儲過程輸出值
- 20. 手柄存儲過程輸出
- 21. 存儲過程不輸出結果
- 22. 存儲過程輸出變量
- 23. openRoad存儲過程輸出參數
- 24. 存儲過程執行時無輸出
- 25. SQL Server存儲過程 - 輸出參數
- 26. 存儲過程有輸出值
- 27. mysql存儲過程輸出多列
- 28. 控制存儲過程輸出
- 29. 存儲過程輸出錯誤
- 30. SQL Server存儲過程參數輸出
在這裏尋找在Oracle中返回記錄集的清晰示例:http://stackoverflow.com/questions/14305883/toad-displaying-cursor-recordset-returned-by-stored-procedure/14320426#14320426 – Art