2013-04-27 116 views
0

我每天有大約20個TXT文件,並且具有不同的名稱和結構。SSIS將多個平面文件導入到多個表格

Files Names --> Table Names 
----------------------------------------------------- 
Tbl-Sales-yymmdd-hhmmss.TXT --> Table-Sales 
Tbl-Customers-yymmdd-hhmmss.TXT --> Table-Customers 

我需要創建一個SSIS包來將這些TXT文件導入到SQL表中。我已經嘗試了多個Foreach循環容器,但是一旦第一個容器完成,其餘的將返回空枚舉器並跳過裏面的所有任務。任何幫助,將不勝感激。謝謝。

回答

0

我假設你的Table-SalesTable-Customers表具有不同的列集合。這意味着每個目標表必須至少有一個數據流任務:每個目標表都需要自己的一組列映射。

這樣做的困難在於,隨着源文件上的日期和時間戳發生更改,您可能不希望將每個平面文件連接更改爲指向正確的源文本文件。

處理的情況是標準化你的文件名,在這個意義上說,最簡單的方法:複製Tbl-Sales-yymmdd-hhmmss.TXT到一個文件在同一專用目錄調用不同的專用目錄Table-Sales.txtTbl-Customers-yymmdd-hhmmss.TXTTable-Customers.txt,並設置所有您的平面文件連接管理器(因爲您可能需要每個源文件類型一個)指向專用目錄中的文件。然後你將得到一個SSIS包,它不需要自定義編程或者變換變量:只要文件在那裏,它就會在沒有進一步干預的情況下執行。

您可能可以使用SSIS將時間戳文件複製到正確的目標文件名中,或者使用一些代碼或(可能)使用舊式.bat文件進行復制。有很多方法。