Я использовал следующий синтаксис, и это сработало для меня.
EXECUTE (Query, Parameters) AT LinkedServerName
Пример:
EXECUTE ('BEGIN ? := Package.MyFunction(?,?); END;', @ReturnValue, @InputPara, @OutputPara OUTPUT) AT LinkedServerName
Важные моменты:
- Не забывайте НАЧАТЬ и синтаксис END при вызове функции
- Не забудьте точку с запятой в конце " END **; ** "
- Для использования вышеуказанного синтаксиса вам необходимо включить RPC для связанного сервера
- Oracle не будет рассматривать вызов как вызов функции, если вы не принимаете выход в переменной