我有一个SQL Server存储过程需要将信息发送到Oracle存储过程。
如何设置?它应该是链接服务器吗?如何编写代码来传递和执行存储过程?
答案 0 :(得分:3)
你也可以使用:
DECLARE @outputParameter int
EXEC ('BEGIN <procedureName>(?,?); END;', @inputParameter , @outputParameter OUTPUT) at <linkedServerName>
这允许捕获输出参数
答案 1 :(得分:3)
程序&#34; TestingProcedure&#34;在Oracle服务器中。
链接服务器&#34; LinkedServer&#34;在SQL Server中。
在SQL server示例中调用TestingProcedure:
EXECUTE ('begin TestingProcedure; end;') AT LinkedServer;
答案 2 :(得分:2)
这是我可能从一开始就尝试的语法:
SELECT * FROM OPENQUERY(<linked server name>, '{CALL <oracle sp>}')
我所看到的(我自己没有尝试过)是你也可以使用OPENQUERY
调用Oracle函数然后可以调用存储过程,或者你可以将存储过程转换为函数。您从SQL Server的连接看起来像这样:
SELECT * FROM OPENQUERY(<linked server name>, 'SELECT <oracle function> FROM dual')
答案 3 :(得分:1)
结果我最终不得不使用Microsofts CLR并编写我自己的小C#应用程序来处理服务器之间推送的变量。这是我做的: