2013-06-12 42 views
1

我在SSIS中創建了2個變量,分別是ProductValue和SQLQuery。所述的SQLQuery包含SQL語句如下SSIS:將sql命令作爲變量傳遞給ole db源

「SELECT * FROM產品哪裏的ProductID>」 + @ [用戶:: ProductValue]

當我通過經由數據訪問模式下的SQLQuery變量OLE DB源= SQL命令從變量中,系統返回如下錯誤消息

數據流任務[OLE DB源[1]]出錯:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80040E14。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80040E14描述:「無法準備語句」。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80040E14描述:「+'。」附近的語法不正確。

回答

4

您需要將SQL查詢變量設置爲EvaluateAsExpression。

如果您在變量網格檢查的SQL查詢變量的值應該這樣說:

SELECT * FROM Products Where ProductID > 1 

如果沒有,那麼你有沒有正確定義的變量。你的SQL查詢變量的值不應該包含任何引號或+,只有表達式應該在這種情況下。

+0

如何「您需要將您的SQL查詢變量設置爲EvaluateAsExpression」? –

+0

@KumarVaibhav它在變量屬性中 –

0

如果有人遇到此線程,可以在選擇「Show advanced editor」(=右鍵單擊Oledb源代碼)並選擇「Component Properties」選項卡並將「AccessMode」切換爲「SQL Command From變量」。