[英]Calling an Oracle stored procedure that uses an output parameter from Microsoft SQL Server
[英]Calling Oracle stored procedure with output parameter from SQL Server
我在SQL Server 2008 R2中有一個Oracle鏈接服務器。 我需要執行Oracle存儲過程(首先使用輸出參數,然后在第二個過程中使用輸入參數):
CREATE OR REPLACE PROCEDURE my1.spGetDate(CurrentDate OUT VARCHAR2)
IS
BEGIN
-- set output parameter, no select statements
END;
CREATE OR REPLACE PROCEDURE my1.spDeleteOldRecords(CurrentDate IN VARCHAR2)
IS
BEGIN
-- conditional delete from oracle table, no select statements
END;
我沒有找到關於這個問題的任何完整文檔,只有簡單的例子與無參數選擇/非選擇程序,並想知道,如何調用這些程序,程序選擇內部,多參數程序與基本參數類型。
它應該像這樣工作:
DECLARE @dateval DATETIME
EXECUTE ('begin my1.spGetDate(?); end;', @dateval OUTPUT) AT ORA_DBLINK_NAME;
EXECUTE ('begin my1.spDeleteOldRecords(?); end;', @dateval) AT ORA_DBLINK_NAME;
如果您有多個參數,它可能如下所示:
EXECUTE ('begin my1.spProc(?,?,?,?); end;', @param_in_1, @param_in_2, @param_out_3 OUTPUT, @param_out_4 OUTPUT) AT DBLINK_NAME;
使用REF CURSOR並將該游標聲明為oracle中的輸出變量。 使用Ref Cursor,您可以從Oracle存儲過程中檢索結果集
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.