我的SQL Server中有Oracle链接服务器。我创建了在Oracle中执行存储过程的过程:
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
时,我传递了两个参数,除了两个输出变量。 var1
是IN OUT
。如何捕获var1
?当我尝试捕获时,我得到的值是我传递给存储过程的,而不是输出值。
答案 0 :(得分:1)
为什么不使用额外的变量?
DECLARE @var1_reply as NVARCHAR(255);
EXEC('begin oracleSPname(?, ?, ?, ? ); end;',
@var1,
@var1_reply output,
@var2,
@var3 output,
)
at ORACLE
set @var1= @var1_reply;