如何为平面文件中的每个项目执行SSIS包?

时间:2017-07-14 18:36:08

标签: sql-server ssis etl ssis-2012 flat-file

我需要为平面文件中的每个项执行一次包。包的参数将是当前项的一些属性。什么是最好的方法?我假设我做的最后一件事是将Execute Package Task组件放在 Foreach循环容器中,如下所示:

enter image description here

2 个答案:

答案 0 :(得分:2)

简单解决方案

  1. 首先,您必须创建类型为Object
  2. 的Package变量
  3. 添加循环平面文件的脚本任务,并将其转换为DataTableList(of T)并将其存储到Object变量中。
  4. 将脚本任务连接到您正在使用的foreach循环
  5. 在foreach循环容器中,选择枚举类型为Ado枚举器,并选择Object变量作为源,并将要在execute package task中使用的列映射到变量
  6. 将平面文件读入DataTable

    您可以参考以下其中一个链接了解详情:

    旁注:如果您需要更多详细信息,请给我回复

答案 1 :(得分:1)

每个项目都有三个属性:username,password和exactAccountName

然后使用它们来执行每个登录凭证的SSIS包。

为了实现这一目标,请执行以下操作:

  1. 在主包中创建Object类型的包变量。
  2. 添加循环平面文件的脚本任务,并将其转换为DataTable或List(T)并将其存储到Object变量中。 (这一步来自哈迪的回答)
  3. 创建一个foreach循环以执行下一步。
  4. 在foreach循环容器中,选择枚举类型为Ado枚举器,并选择Object变量作为Source。 (也来自哈迪的回答)
  5. 在foreach循环中放置一个脚本任务并执行包任务。像这样:enter image description here
  6. 在主程序包中为username,password和exactAccountName创建三个字符串变量。
  7. 使用以下代码填充脚本任务的主要功能:enter image description here
  8. 将子包的参数设置为脚本任务指定的变量,并且您已完成!