2016-02-12 48 views
2

我的SQL Server中有Oracle鏈接服務器。我創建過程它是Oracle執行存儲過程:如何在SQL Server中捕獲Oracle SP INOUT參數

CREATE PROCEDURE ModifySth (
    @var1 nvarchar(255), 
    @var2 nvarchar(255) 
) 
AS 
BEGIN 
    DECLARE @var3 as NVARCHAR(255); 
    EXEC('begin oracleSPname(?, ?, ?); end;', 
      @var1 output,   
      @var2, 
      @var3 output, 
     ) 
    at ORACLE 
    SELECT @var1 as var1, @Vvar3 as var3; 
END 

當我執行ModifySth我傳遞兩個參數除外和兩個輸出VARS。 var1IN OUT。如何截取var1?當我試圖捕獲的時候,我得到了傳遞給存儲過程的值,而不是輸出值。

回答

0

爲什麼你不使用額外的變量?

DECLARE @var1_reply as NVARCHAR(255); 

EXEC('begin oracleSPname(?, ?, ?, ?); end;', 
     @var1,   
     @var1_reply output, 
     @var2, 
     @var3 output, 
    ) 
at ORACLE 

set @var1= @var1_reply;