【问题标题】:For Each Loop SSIS. Dependent on SQL Query对于每个循环 SSIS。依赖于 SQL 查询
【发布时间】:2019-03-14 06:35:32
【问题描述】:
  1. 我有一个 SSIS 包,它检查跟踪表中存在的未处理文件,然后对其进行处理。到目前为止,只有一个文件会进入,我们会对其进行处理,因此相应地设计了该流程。

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

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

【问题讨论】:

  • 使用 For Each 循环遍历表行已遍布互联网。我昨天刚刚在一个问题中引用了这个链接:red-gate.com/simple-talk/sql/ssis/…
  • @Nick.McDermaid 我认为下面的答案中提供了相同的链接(第一个链接):)
  • 我不知道你在这里想说什么:“通过将参数传递给第 1 步来调整第 1 点”
  • @TabAlleman 他需要获取存储在 db 表中的文件路径并循环遍历结果并在循环内处理这些文件
  • @Sunil 问题解决了吗?您是否尝试过提供的答案?如果是这样,为什么不提供反馈或接受它?

标签: sql-server ssis etl sql-server-data-tools foreach-loop-container


【解决方案1】:

您可以使用以下步骤来做到这一点:

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

详细文章

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 2020-08-17
    • 1970-01-01
    • 2013-11-22
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多