如何在 SQL 服务器中捕获 Oracle SP INOUT 参数
How to capture Oracle SP INOUT parameter in SQL Server
我的 SQL 服务器中有 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
?当我尝试捕获时,我得到了传递给存储过程的值,而不是输出值。
为什么不使用额外的变量?
DECLARE @var1_reply as NVARCHAR(255);
EXEC('begin oracleSPname(?, ?, ?, ? ); end;',
@var1,
@var1_reply output,
@var2,
@var3 output,
)
at ORACLE
set @var1= @var1_reply;
我的 SQL 服务器中有 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
?当我尝试捕获时,我得到了传递给存储过程的值,而不是输出值。
为什么不使用额外的变量?
DECLARE @var1_reply as NVARCHAR(255);
EXEC('begin oracleSPname(?, ?, ?, ? ); end;',
@var1,
@var1_reply output,
@var2,
@var3 output,
)
at ORACLE
set @var1= @var1_reply;