繁体   English   中英

从SQL Server存储过程执行Oracle存储过程

[英]Execute an Oracle stored procedure from a SQL Server stored procedure

我有一个SQL Server存储过程,需要将信息发送到Oracle存储过程。

我该如何设置? 它应该是链接服务器吗? 如何编写代码来传递和执行存储过程?

你也可以使用:

DECLARE @outputParameter int
EXEC ('BEGIN <procedureName>(?,?); END;', @inputParameter , @outputParameter OUTPUT) at <linkedServerName>

这允许捕获输出参数

Oracle服务器中的过程“TestingProcedure”。

SQL Server中的链接服务器“LinkedServer”。

在SQL server示例中调用TestingProcedure:

EXECUTE ('begin TestingProcedure; end;') AT LinkedServer;

这是我可能从一开始就尝试的语法:

SELECT * FROM OPENQUERY(<linked server name>, '{CALL <oracle sp>}')

我所看到的(我自己没有尝试过)是你也可以使用OPENQUERY来调用Oracle函数,然后可以调用存储过程,或者你可以将存储过程转换为函数。 您从SQL Server的连接看起来像这样:

SELECT * FROM OPENQUERY(<linked server name>, 'SELECT <oracle function> FROM dual')

结果我最终不得不使用Microsofts CLR并编写我自己的小C#应用程序来处理服务器之间推送的变量。 这是我做的:

  1. C#应用程序在Windows中的计划任务上启动
  2. 应用程序执行SQL Server存储过程并获取返回值
  3. 然后,应用程序使用适当的值执行Oracle存储过程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM