我試圖從MS SQL 2005中的鏈接數據庫執行存儲過程。鏈接數據庫是iseries服務器上的db2數據庫。我正在使用iSeries IBMDASQL服務提供程序。我能夠使用簡單的vbscript和ado查詢存儲過程而不會出現問題。當我嘗試在SQL Server上的查詢分析器中執行相同的存儲過程時,我從來沒有看到任何結果。查詢分析器總是顯示'執行命令',並且當我在臨時表上執行select *時,不會顯示任何值。我究竟做錯了什麼????? 謝謝!從SQL 2005鏈接服務器執行DB2 iSeries存儲過程
從查詢分析器--code below--
DECLARE @emailToAddress char(50)
DECLARE @emailFromAddress char(50)
set @emailToAddress = '[email protected]'
set @emailFromAddress = '[email protected]'
If Object_ID('tempdb..#tmpResultTbl') Is Not Null
Drop Table #tmpResultTbl
Create Table #tmpResultTbl
(
OUTPGMID Char(150))
--SET FMTONLY Off
Set NoCount On
Insert Into #tmpResultTbl
EXEC ('CALL abicqual.VP_GETCCEPGMID(?, ?) ', @emailToAddress, @emailFromAddress) AT MAM400
Select * From #tmpResultTbl
更新: 這裏是更新的代碼使用OPENQUERY ...仍然沒有運氣:(
DECLARE @TSQL VARCHAR(8000) DECLARE @emailToAddress VARCHAR(50) DECLARE @emailFromAddress VARCHAR(50) SET @emailToAddress = '[email protected]' SET @emailFromAddress = '[email protected]' SET @TSQL =「SELECT *從OPENQUERY(MAM 400,''CALL abicqual.VP_GETCCEPGMID('''''+ @emailToAddress +''''','''''+ @emailFromAddress +''''''+')'''+')' 打印@TSQL EXEC(@TSQL)
--output below-- SELECT * FROM OPENQUERY(MAM400, 'CALL abicqual.VP_GETCCEPGMID(' '[email protected]'」, '' 客戶@ gmail的.com'')') Msg 7357,Level 16,State 2,Line 1 無法處理對象「CALL abicqual.VP_GETCCEPGMID('[email protected]','[email protected]')」。鏈接服務器「MAM400」的OLE DB提供程序「IBMDASQL」表示該對象沒有列或當前用戶沒有該對象的權限。