2016-07-27 69 views
0

閱讀本質上是動態的多個平面文件我也包含了像文件的文件夾:如何一氣呵成在SSIS

A_ddmmyyyy, b_ddmmyyyy and c_ddmmyyyy. 

我需要閱讀所有這些文件的日期再次所有這些文件的下一個日期出現在同一個文件夾中。此外,文件夾中存在的文件數量也不盡相同(可能包含三天或五天的數據),但文件夾上的日期保持不變。

可能嗎?

回答

0

您可以在容器內創建一個Foreach循環容器,創建一個處理特定文件夾中所有文件的數據流任務。您創建一個帶有所需分隔符的平面文件連接,以及一個具有文件夾路徑的變量。然後,作爲任務的最後一步,創建文件系統任務,將文件移動到已處理或已完成的文件夾,以便在處理完文件後清空主文件夾。

+0

Thnx Jason,但每個文件中的數據不同 –

+0

因此,如果您說文件必須按順序處理,請先A,然後B,然後C,針對特定日期。創建一個Foreach循環容器,將文件名轉儲到一個表中,然後應用您的邏輯來遍歷列表中要處理的文件以及按照什麼順序(通過SQL或通過ssis中的排序變換)。這個容器首先被執行,然後是我上面提到的Foreach循環容器。 –

+0

如果你說文件必須根據文件名被處理到不同的表中,是否有一些約定的命名約定,以便你可以挑出哪些文件轉到哪個表?如果是這樣,創建一個Foreach循環容器,將文件名轉儲到一個表中,然後將您的邏輯應用於遍歷要處理的文件到其相關表(通過SQL或通過ssis中的排序變換)的列表。這個Container首先被執行,然後是我上面提到的Foreach Loop容器,第二個。 –

0

文件名無關緊要,您必須確定文件夾中的文件有多少種模式(列數,列名稱,類型)。假設你有3個模式,那麼你將需要定義3種類型的平面文件連接。有很多方法可以完成這項工作,我能想到的最簡單的方法就是使用powershell將不同模式的文件分隔到不同的文件夾中,您必須知道哪些文件名映射到哪個模式,可能會有模式或業務規則。然後,您將PowerShell放入執行進程任務中以運行該腳本。然後,以下內容很簡單:對於創建包的每個文件夾,每個容器的內部都是一個循環訪問每個文件的文件夾。或者,您可以爲每個循環容器安裝一個包裝,以便完成這項工作。