Выполнить хранимую процедуру Oracle из хранимой процедуры SQL Server - PullRequest
3 голосов
/ 31 августа 2011

У меня есть хранимый процесс SQL Server, который должен отправлять информацию в хранимый процесс Oracle.

Как мне это настроить? Должен ли это быть связанный сервер? И как мне написать код для передачи и выполнения хранимых процедур?

Ответы [ 4 ]

3 голосов
/ 06 мая 2015

процедура "TestingProcedure" на сервере Oracle.

связанный сервер «LinkedServer» в SQL Server.

вызов TestingProcedure в примере сервера SQL:

EXECUTE ('begin TestingProcedure; end;') AT LinkedServer;
3 голосов
/ 08 января 2014

Вы также можете использовать:

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

Это позволяет захватывать выходные параметры

2 голосов
/ 31 августа 2011

Это синтаксис, который я, вероятно, попробую с самого начала:

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

Что я видел (я сам не пробовал), так это то, что вы также можете использовать OPENQUERY для вызова функции Oracle, которая затем может вызывать хранимую процедуру, или вы можете превратить хранимую процедуру в функцию. Ваше соединение с SQL Server будет выглядеть примерно так:

SELECT * FROM OPENQUERY(<linked server name>, 'SELECT <oracle function> FROM dual')
1 голос
/ 13 сентября 2013

Оказывается, мне пришлось использовать Microsoft CLR и написать свое маленькое приложение на C #, чтобы обрабатывать переменные, передаваемые между серверами.Вот что я сделал:

  1. C # Приложение запускается по запланированной задаче в Windows
  2. Приложение выполняет хранимую процедуру SQL Server и получает возвращаемые значения
  3. Затем приложение выполняетхранимая процедура Oracle с соответствующими значениями
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...