Използвах следния синтаксис и той работи за мен.
EXECUTE (Query, Parameters) AT LinkedServerName
Пример:
EXECUTE ( 'BEGIN ? := Package.MyFunction(?,?); END;', @ReturnValue, @InputPara, @OutputPara OUTPUT ) AT LinkedServerName
Важни моменти:
- Не забравяйте синтаксиса BEGIN и END, когато извиквате функции
- Не забравяйте точката и запетая в края „END**;**“
- За да използвате горния синтаксис, трябва да активирате RPC за свързания сървър
- Oracle няма да разглежда извикването като извикване на функция, освен ако не приемете изхода в променлива