在這項工作中,您將新增循環處理一般檔案資料夾的功能,並將第1課中使用的相同數據流轉換套用至每個一般檔案。 您可以藉由將 Foreach 迴圈容器新增並設定至控制流程來執行此作。
您新增的 Foreach 循環容器必須能夠連線到資料夾中的每個一般檔案。 因為資料夾中的所有檔案都有相同的格式,因此 Foreach 循環容器可以使用相同的一般檔案連接管理員來連線到這些檔案。 容器將使用的一般檔案連接管理器與您在第 1 課中建立的一般檔案連接管理器相同。
目前,第 1 課的一般檔案連接管理員只會連線到一個特定的一般檔案。 若要反覆連線到資料夾中的每個一般檔案,您必須設定 Foreach 迴圈容器和一般檔案連接管理員,如下所示:
Foreach 迴圈容器: 您將將容器的列舉值對應至使用者定義的封裝變數。 容器接著會使用此使用者定義的變數,以動態方式修改
ConnectionString一般檔案連接管理員的 屬性,並反覆連接到資料夾中的每個一般檔案。一般檔案連接管理員: 您將使用使用者定義的變數修改第1課中建立的連接管理員,以填入連接管理員的
ConnectionString屬性。
此工作中的程式會示範如何建立和修改 Foreach 迴圈容器,以使用使用者定義的封裝變數,並將數據流工作新增至迴圈。 您將瞭解如何修改一般檔案連接管理員,以在下一個工作中使用使用者定義的變數。
對封裝進行這些修改之後,當封裝執行時,Foreach 迴圈容器會逐一查看Sample Data資料夾中的檔案集合。 每次找到符合準則的檔案時,Foreach 迴圈容器就會以檔名填入使用者定義的變數、將使用者定義的變數對應至 ConnectionString 範例貨幣數據一般檔案連接管理員的 屬性,然後針對該檔案執行數據流。 因此,在 Foreach 循環的每個反覆專案中,數據流工作會取用不同的一般檔案。
備註
因為 MicrosoftIntegration Services 會將控制流程與數據流分開,因此您新增至控制流程的任何迴圈都不需要修改數據流。 因此,您在第 1 課中建立的數據流不需要變更。
若要新增 Foreach 循環容器
在 [SQL Server Data Tools] 中,點一下 [控制流程] 索引標籤。
在 [SSIS 工具箱] 中,展開 [ 容器],然後將 Foreach 迴圈容器 拖曳到 [控制流程 ] 索引卷標的設計介面上。
以滑鼠右鍵按下新增的 Foreach 循環容器 ,然後選取 [ 編輯]。
在 [ Foreach 循環編輯器] 對話方塊的 [ 一般 ] 頁面上,針對 [ 名稱] 輸入
Foreach File in Folder。 按一下 [確定]。以滑鼠右鍵按兩下 Foreach 循環容器,按兩下 [屬性],然後在 [屬性] 視窗中,確認
LocaleID屬性已設定為英文(美國)。
為 Foreach 迴圈容器設定枚舉器
按兩下 [資料夾中的 Foreach 檔案] 以重新開啟 Foreach 循環編輯器。
按一下 Collection。
在 集合 頁面上,選取 Foreach 檔案列舉值。
在 列舉值設定群組中,按瀏覽。
在 [ 瀏覽資料夾 ] 對話框中,找出計算機上包含Currency_*.txt 檔案的資料夾。
此範例數據隨附於 SSIS 課程套件中。 若要下載範例數據和課程套件,請執行下列動作。
按兩下 [ 下載] 索引標籤。
點擊超連結 “https://msftisprodsamples.codeplex.com/downloads/get/578097"SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip” 檔案。
在 [ 檔案] 方塊中,輸入 Currency_*.txt。
若要將枚舉器映射到自定義變數
按一下 變數對應。
在 [ 變數對應 ] 頁面上的 [ 變數 ] 數據行中,按下空白儲存格,然後選取[ <新增變數...>]。
在 [ 新增變數] 對話框中,針對 [ 名稱] 輸入
varFileName。這很重要
變數名稱區分大小寫。
按一下 [確定]。
再次按兩下 [確定 ] 以結束 [Foreach 循環編輯器 ] 對話框。
將資料流程任務新增至迴圈中
- 將 提取範例貨幣數據 流程工作拖曳至已重新命名的 Foreach 迴圈容器。