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

Sun*_*nil 4 sql-server ssis etl foreach-loop-container sql-server-data-tools

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

  2. 然而,现在多个文件可以一次性进入,我们将这些多个文件存储在跟踪表中,并且有一列用于跟踪未处理的文件。

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

Had*_*adi 5

您可以使用以下步骤执行此操作:

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

详细文章