trapemiya様
情報ありがとうございます。
以下のようなコマンドに書き換えたところエラーはなくなりましたが、戻り値が取得できません。
---
CREATE TABLE #myTmpTbl(col1 int)
DECLARE @tsql NVARCHAR(MAX)
DECLARE @tsql2 NVARCHAR(MAX)
DECLARE @srvname NVARCHAR(MAX)
SET @srvname = '[ORACLE_DB_LINK]'
SET @tsql = 'EXEC (''' + 'EXECUTE :ret := [ORACLE_FUNCTION];' + ''') AT ' + @srvname + ''
SET @tsql2 = 'INSERT INTO #myTmpTbl ' + @tsql
EXEC sp_executesql @tsql2
SELECT * FROM #myTmpTbl;
DROP TABLE #myTmpTbl;
---
「:ret := 」の部分を消してファンクションだけにするとOracle側からコマンドが正しくないと帰ってきてしまい、どうすればよいかわかりません。
「OLE DB プロバイダー "OraOLEDB.Oracle" から、メッセージ "ORA-00900: invalid SQL statement" が返されました。」
以上、よろしくお願いいたします。