Eu usei a seguinte sintaxe e funcionou para mim.
EXECUTE (Query, Parameters) AT LinkedServerName
Exemplo:
EXECUTE ( 'BEGIN ? := Package.MyFunction(?,?); END;', @ReturnValue, @InputPara, @OutputPara OUTPUT ) AT LinkedServerName
Pontos importantes:
- Não se esqueça da sintaxe BEGIN e END ao chamar funções
- Não se esqueça do ponto e vírgula no final "END**;**"
- Para usar a sintaxe acima, você precisa habilitar o RPC para o servidor vinculado
- O Oracle não considerará a chamada como uma chamada de função, a menos que você aceite a saída em uma variável