Foreach Loop Container (1) — 处理平面文件

在 SSIS 中处理平面文件的时候会经常用到 Foreach Loop Container. 先介绍一下 Foreach Loop Container 这个组件:

从 Toolbox 中选择 Foreach Loop Container 拖动到 Control Flow 中. 可以看到 Collection 选项中的 Enumerator 中有很多项. 关于这些的说明:

 

枚举器 配置要求

Foreach ADO

                  指定 ADO 对象源变量和枚举器模式。

Foreach ADO.NET 架构行集

                  指定与数据库的连接和要枚举的架构。

Foreach 文件

                  指定要枚举的文件夹和文件、检索到的文件的文件名格式,以及是否要遍历子文件夹。

Foreach 源变量

                  指定包含要枚举的对象的变量。

Foreach 项

                  定义 Foreach 项集合中的项,包括列和列数据类型。

Foreach Nodelist

                  指定 XML 文档的源并配置 XPath 操作。

Foreach SMO

                  指定与数据库的连接以及要枚举的 SMO 对象。

今天我们只是说明对于平面文件的枚举, 所以在这里应该选择 Foreach File Enumerator.

示例如下:

  1. 首先做一个 Data Flow Task. 从 Flact File Source 转换数据, 清洗后装载到 OLE DB Destination. 这里不再熬述大家可以直接看Package 示例
  2. 将 Data Flow Task 拖入 Foreach Loop Container

怎样对 Foreach Loop Container 进行设置, 从而能够遍历操作文件夹下的Flat File. 具体操作如下:

  • 按照下面的图示进行设置:

                   

  1. 选择Collection 选项, 在 Enumertor 属性中选择 Foreach File Enumerator
  2. Folder 属性中选择定位的文件夹. 这里为 F:\SourceFiles
  3. Files 属性中填写需要遍历文件的文件名. 这里为 Daily Unique Visitors Report for hotels.com*.csv
  4. 在Retireve file name属性中选择 Fully qualified
  5. 增加变量@[User::strFile]作为每次传递给 Flat File Source 处理. 变量类型为 String. 如下图所示:

                    

在完成以上操作后我们还需要对 Flat File Source 属性中的 Expressions 进行设置,保证每次变量都能够传递给它. 具体的设置请按下图操作:

                    

这样就完成了整个包。选择运行, 运行结果OK.

怎样对 Foreach Loop Container 进行灵活的设置,不需要每次都去修改 Folder  和 Files 属性, 请听下回分解.

3-18-2009 3-21-16 PM.jpg

3-18-2009 3-28-00 PM.jpg

3-18-2009 3-36-59 PM.jpg

3-18-2009 3-45-58 PM.jpg

3-18-2009 3-50-20 PM.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14321372/viewspace-571426/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14321372/viewspace-571426/

你可能感兴趣的:(Foreach Loop Container (1) — 处理平面文件)