对于每个循环 SSIS。依赖于 SQL 查询

For Each Loop SSIS. Dependent on SQL Query

  1. 我有一个 SSIS 包,它检查跟踪 table 中存在的未处理文件,然后对其进行处理。到目前为止,只有一个文件会进来,我们会处理它,因此流程是相应设计的。

  2. 但是现在多个文件可以同时进入,我们将这些多个文件存储在跟踪中table,并且我们有一个列来跟踪未处理的文件。

我正在尝试使用 For Each 循环来处理所有未处理的文件。所以我得到了未处理文件的数量,并想通过将参数传递给步骤 1 来简单地调整点 1,但是我没有成功地使用 Foreach From Variable Enumerator 来完成它。我错过了什么吗?

您可以按照以下步骤执行此操作:

  1. 添加执行 SQL 任务以获取未处理的文件并将结果集存储在 System.Object
  2. 类型的变量中
  3. 添加一个 Foreach 循环容器,将类型更改为 ADO enumerator 并将变量 select 更改为 souce
  4. 在变量映射选项卡中将结果(每个文件路径)映射到字符串类型的变量
  5. 在 foreach 循环容器中添加一个包含平面文件源的数据流任务并实现您需要的处理逻辑
  6. 添加平面文件连接管理器定义列
  7. 单击平面文件连接管理器,按 F4 显示 属性 选项卡,转到表达式。
  8. Select connectiinstring 属性 并使用保存文件路径的变量作为表达式

详细文章