如何在 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 时,我传递了两个参数并排除了两个输出变量。 var1IN 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;