我有一個Informix機我已經配置爲SQL Server中的鏈接服務器。對鏈接服務器的存儲過程調用的語法錯誤?
我可以遠程發送和接收的,對於查詢的結果,說
SELECT * FROM linkedServer.instanceName.database.myTable
,但不能運行
linkedServer.instanceName.database.selectAllFromMYTABLE
存儲過程。
我就要返回的錯誤消息 「[Informix的] [Informix ODBC驅動程序] [Informix的]發生了語法錯誤。」這不是大規模的幫助,但它告訴我,我的要求以某種形式獲得...
有人能告訴我什麼是正確的調用語法將通過SQL Server以執行一個Informix存儲過程?據推測,我搞砸了存儲過程調用,因爲可以驗證存儲過程在Informix服務器上正常工作。
編輯:添加一個存儲過程,我測試的全文,爲了驗證我沒有做Informix中的一些愚蠢的事,這是造成一個連鎖問題在SQL Server執行:
CREATE FUNCTION sp_testSP()
RETURNING char(20) as item_no
DEFINE item_no char(20);
FOREACH
SELECT table_name.item_code
INTO item_no
FROM table_name
WHERE table_name.item_code LIKE 'test%'
RETURN item_no WITH RESUME;
END FOREACH;
END FUNCTION
正如我所提到的,這似乎在我已經連接到Informix的RazorSQL中工作正常,但也許看到這會慢跑某人的內存,原因是SQL Server無法使用此返回方法...
它看起來很有希望,但看完文章,我發現:「OPENQUERY不能用於對鏈接服務器上執行擴展存儲過程」 – Frosty840 2011-05-24 07:09:35
嗯......我已經得到openquery來請求存儲過程的執行,但它獲得與其他方法相同的語法錯誤消息。 – Frosty840 2011-05-24 07:19:27
'select * from openquery([linkedServer],'execute function instancename:sp_testSP()')'working。括號和所有。 – Frosty840 2011-05-24 08:03:59