Użyłem następującej składni i zadziałało to dla mnie.
EXECUTE (Query, Parameters) AT LinkedServerName
Przykład:
EXECUTE ( 'BEGIN ? := Package.MyFunction(?,?); END;', @ReturnValue, @InputPara, @OutputPara OUTPUT ) AT LinkedServerName
Ważne punkty:
- Nie zapomnij o składni BEGIN i END podczas wywoływania funkcji
- Nie zapomnij o średniku na końcu „END**;**”
- Aby użyć powyższej składni, musisz włączyć RPC dla połączonego serwera
- Oracle nie uzna wywołania za wywołanie funkcji, chyba że zaakceptujesz dane wyjściowe w zmiennej