ami*_*dev 5 t-sql sql-server oracle stored-procedures linked-server
我试图通过DB LINK从SQL Server 2008 R8执行oracle存储过程,存储过程的标题如下所示:
程序测试(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;
Run Code Online (Sandbox Code Playgroud)
执行存储过程是因为我可以看到表"MYTABLE"已更新,但问题是我得到一个错误:
Msg 7215, Niveau 17, État 1, Ligne 10
Impossible d'exécuter l'instruction sur le serveur distant 'DB_ORACLE'.
Run Code Online (Sandbox Code Playgroud)
转化为
Cannot execute the instruction at the distant server 'DB_ORACLE'
Run Code Online (Sandbox Code Playgroud)
注意:启用Rpc,Rpc Out和Use Remote Collation的参数
感谢帮助
小智 0
用于从 SQL Server 进行简单的 Oracle 过程调用
exec ('开始 sproc_name; 结束;') at linked_server_name
使用变量调用过程
<B>declare @z int<B>
<B>set @z = 10 <B>
exec ('begin sproc_name(''' + @z + '''); end;') at
linked_server_name;
Run Code Online (Sandbox Code Playgroud)
这对我来说效果很好
归档时间: |
|
查看次数: |
1795 次 |
最近记录: |