2013-06-26 88 views
1

我將變量值作爲輸入參數傳遞給execute sql任務中的腳本。其在具有值C封裝的字符串變量:/存檔如何修復錯誤:多步OLE DB操作產生錯誤。檢查每個OLE DB狀態值

輸入參數數據類型是VARCHAR在參數映射在執行SQL任務。

腳本執行SQL任務是

Declare @body1 nvarchar(max), @b nvarchar(max) 

set @body1 = 'The softdollar error files are located at ' 
set @b = @body1 + ? 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name='PWO Notification', 
@recipients='[email protected]', 
@subject= 'Soft Dollar Package', 
@body= @b 

包裝拋出錯誤:產生

「多步OLE DB操作錯誤,請檢查每個OLE DB狀態值,如果可用沒有工作已完成。 」。可能的失敗原因:查詢問題,「ResultSet」屬性設置不正確,參數設置不正確或連接未正確建立。

回答

1

如果更改set @b = @body1 + ?set @b = @body1 + N'?'工作的呢?

我的假設是,該聲明不像人們所期望的那樣連接。具體來說,如果你做了declare @c nvarchar(max); SET @c =?; SET @b = @body1 + @c;我懷疑事情會以正確的,逃避的方式逃脫並取代。

如果不是,請回報,我將刪除此答案。

0

我通過創建一個新的變量和具有腳本在該變量的表達式固定它。在Execute sql任務中調用該變量。將參數映射的變量放在腳本中,作爲問號所在的@ [user :: variable]。

相關問題