2016-03-01 80 views
1

我已經寫了一個SSIS包來將數據從一個Excel源上傳到一個OLE DB目的地 - 但是當我希望使用一個ForeachLoop容器來從多個Excel文件加載數據時,我是出錯。我按照包含在下面的鏈接教程:SSIS動態人口的Excel文件名

https://msdn.microsoft.com/en-us/library/ms345182.aspx

所有的配置是正確的距變strFileName需要被動態地填充。這可以從下面拍我的變量在屏幕中可以看出保持空白:

enter image description here

我不確定如何做到這一點。有沒有可用於動態填充此變量的表達式或函數?

+0

什麼是錯誤和拋出它?爲什麼問一個問題而不發佈錯誤? –

+0

錯誤:0xC0202009在數據流任務,Excel來源[36]:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80040E37。 錯誤:數據流任務,Excel來源0xC02020E8 [36]:打開「Sheet1 $」的行集失敗。檢查數據庫中是否存在該對象。 錯誤:0xC004706B在數據流任務,SSIS.Pipeline:「Excel源」未通過驗證並返回驗證狀態「VS_ISBROKEN」。 錯誤:數據流任務,SSIS.Pipeline 0xC004700C:一個或多個組件驗證失敗。 錯誤:數據流任務0xC0024107:任務驗證期間出現錯誤。 –

回答

1

如果您想保存文件名動態地爲每一個在你的文件夾中使用變量映射在循環這樣

Mapping

併爲您的循環:

ForEach

注意您的變量始終爲空,因爲該字段僅在您輸入循環時更新。

+0

我有這些設置,你在圖像中顯示,但我仍然收到以下錯誤: 錯誤:0xC0202009在數據流任務,Excel來源[36]:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80040E37。 錯誤:數據流任務,Excel來源0xC02020E8 [36]:打開「Sheet1 $」的行集失敗。檢查數據庫中是否存在該對象。 錯誤:0xC004706B在數據流任務,SSIS.Pipeline:「Excel源」未通過驗證並返回驗證狀態「VS_ISBROKEN」。 –

+0

檢查您的Excel連接管理器和您的DataFlowTask,驗證您的源(或目的地)。 如果你使用一個變量作爲你的文件名,在Task屬性中改變DelayValidation ='false'爲'true' – Huojian