Jag använde följande syntax och det fungerade för mig.
EXECUTE (Query, Parameters) AT LinkedServerName
Exempel:
EXECUTE ( 'BEGIN ? := Package.MyFunction(?,?); END;', @ReturnValue, @InputPara, @OutputPara OUTPUT ) AT LinkedServerName
Viktiga punkter:
- Glöm inte BEGIN- och END-syntaxen när du anropar funktioner
- Glöm inte semikolonet i slutet "END**;**"
- För att använda ovanstående syntax måste du aktivera RPC för den länkade servern
- Oracle kommer inte att betrakta anropet som ett funktionsanrop om du inte accepterar utdata i en variabel