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

How can I execute an SSIS Package for every item in a Flat File?

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

简单的解决方案

  1. 首先你必须创建一个Object
  2. 类型的包变量
  3. 添加循环平面文件的脚本任务并将其转换为 DataTableList(of T) 并将其存储到 Object 变量中。
  4. 将脚本任务连接到您正在使用的 foreach 循环
  5. 在 foreach 循环容器中 select 枚举类型为 Ado 枚举器和 select Object 变量作为源并将要在 [=15= 中使用的列映射] 到变量

正在将平面文件读入 DataTable

您可以参考以下链接之一了解更多信息:

  • How to Read text file to DataTable
  • DataTable from TextFile?
  • Efficient function for reading a delimited file into DataTable

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

每个项目都有三个属性:用户名、密码和 exactAccountName

这些随后被用于使用每个登录凭据执行 SSIS 包。

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

  1. 在主包中创建一个对象类型的包变量。
  2. 添加一个循环遍历平面文件的脚本任务,并将其转换为 DataTable 或 List(of T),并将其存储到 Object 变量中。 (这一步来自Hadi的回答)
  3. 创建一个 foreach 循环以供下一步执行。
  4. 在 foreach 循环容器中 select 枚举类型为 Ado 枚举器和 select 对象变量作为源。 (同样来自哈迪的回答)
  5. 在 foreach 循环中放入脚本任务和执行包任务。像这样:
  6. 在主包中为用户名、密码和 exactAccountName 创建三个字符串变量。
  7. 使用如下代码填充脚本任务的主要功能:
  8. 设置子包的参数为Script Task指定的变量,大功告成!