我正在尝试通过 DB LINK 从 SQL Server 2008 R8 执行 Oracle 存储过程, 存储过程的 header 如下所示:
block 引用> block 引用>PROCEDURE TEST(X OUT NOCOPY VARCHAR2,Y OUT NOCOPY NUMBER,Z IN NUMBER )
此过程将更新表“MYTABLE”并返回结果
我的 T-SQL 是:
DECLARE @X nvarchar(255) DECLARE @Y INTEGER DECLARE @Z INTEGER SET @X= '' SET @Y = 0 SET @Z = 2 EXEC('begin USER.PKG.TEST(?,?,?); end;',@X OUTPUT, @Y OUTPUT,@Z ) AT DB_ORACLE;
执行存储过程是因为我可以看到表“MYTABLE”已更新,但问题是我收到错误:
Msg 7215, Niveau 17, État 1, Ligne 10 Impossible d'exécuter l'instruction sur le serveur distant 'DB_ORACLE'.
翻译过来
Cannot execute the instruction at the distant server 'DB_ORACLE'
注意:Rpc、Rpc Out 和 Use Remote Collation 的参数已启用
感谢您的帮助
最佳答案
从 SQL Server 进行简单的 Oracle 过程调用
exec ('开始 sproc_name; end;') 在 linked_server_name
使用变量调用过程
<B>declare @z int<B>
<B>set @z = 10 <B>
exec ('begin sproc_name(''' + @z + '''); end;') at
linked_server_name;
这对我来说效果很好 使用
关于sql-server - 从 Sql Server 2008 执行 Oracle 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798532/