如何为平面文件中的每个项目执行 SSIS 包?
How can I execute an SSIS Package for every item in a Flat File?
我需要为平面文件中的每个项目执行一次包。包的参数将是一些当前项目的属性。最好的方法是什么?我假设我做的最后一件事是在 Foreach Loop Container 中放置一个 Execute Package Task
组件,如下所示:
简单的解决方案
- 首先你必须创建一个
Object
类型的包变量
- 添加循环平面文件的脚本任务并将其转换为
DataTable
或 List(of T)
并将其存储到 Object
变量中。
- 将脚本任务连接到您正在使用的 foreach 循环
- 在 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 包。
为了实现这一点,请执行以下操作:
- 在主包中创建一个对象类型的包变量。
- 添加一个循环遍历平面文件的脚本任务,并将其转换为 DataTable 或 List(of T),并将其存储到 Object 变量中。 (这一步来自Hadi的回答)
- 创建一个 foreach 循环以供下一步执行。
- 在 foreach 循环容器中 select 枚举类型为 Ado 枚举器和 select 对象变量作为源。 (同样来自哈迪的回答)
- 在 foreach 循环中放入脚本任务和执行包任务。像这样:
- 在主包中为用户名、密码和 exactAccountName 创建三个字符串变量。
- 使用如下代码填充脚本任务的主要功能:
- 设置子包的参数为Script Task指定的变量,大功告成!
我需要为平面文件中的每个项目执行一次包。包的参数将是一些当前项目的属性。最好的方法是什么?我假设我做的最后一件事是在 Foreach Loop Container 中放置一个 Execute Package Task
组件,如下所示:
简单的解决方案
- 首先你必须创建一个
Object
类型的包变量
- 添加循环平面文件的脚本任务并将其转换为
DataTable
或List(of T)
并将其存储到Object
变量中。 - 将脚本任务连接到您正在使用的 foreach 循环
- 在 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 包。
为了实现这一点,请执行以下操作:
- 在主包中创建一个对象类型的包变量。
- 添加一个循环遍历平面文件的脚本任务,并将其转换为 DataTable 或 List(of T),并将其存储到 Object 变量中。 (这一步来自Hadi的回答)
- 创建一个 foreach 循环以供下一步执行。
- 在 foreach 循环容器中 select 枚举类型为 Ado 枚举器和 select 对象变量作为源。 (同样来自哈迪的回答)
- 在 foreach 循环中放入脚本任务和执行包任务。像这样:
- 在主包中为用户名、密码和 exactAccountName 创建三个字符串变量。
- 使用如下代码填充脚本任务的主要功能:
- 设置子包的参数为Script Task指定的变量,大功告成!