我根據Hadi給出的解決方案編輯了問題。SSIS - SQL命令 - 參數
我在VS 2013中使用SSIS。 我有一個名爲MyVariableList和Query的用戶變量。
這是在用戶變量查詢表達式: 「SELECT可樂,COLB FROM myTable的WHERE本身份識別碼IN(」 + @ [用戶:: MyVariableList] + 「)」
我有一個腳本任務設置@ [User :: MyVariableList]的值。
Dts.Variables["User::MyVariableList"].Value = sList;
在那之後,我有一個數據流任務使用OLE DB源(從1個數據庫)到另一個OLE DB目標(另一臺服務器上的另一個數據庫)。 在OLE DB源代碼編輯器,我設置 數據訪問模式:SQL命令從變量 變量名:用戶::查詢
在OLE DB源連接,我已經設置了DelayValidation爲True
之前,我甚至可以運行該軟件包,我得到這個錯誤 我該如何解決這個問題?謝謝
如果你想使用分隔字符串逗號一樣,你需要使用動態SQL,這是使用表達式實現的。你不能使用參數來做到這一點。請參閱以下參考資料:https://jamessummerlin.com/2015/05/04/ssis-using-expressions-to-build-sql-statements-for-ado-net-connections/ http://stackoverflow.com/questions/ 17071451/ssis-passing-sql-command-as-variable-to-ole-db-source –
MyProjectVariable屬於String類型,如果使用2個int類型的參數並傳遞這些參數,那麼它將起作用。 – observer
Man!你在得到答案並接受答案後改變了整個問題?最好問一個新的,這不是堆棧溢出工作的方式! @faujong –