【问题标题】:SSIS Execute File Task In Parent Container If Child Container Process fails如果子容器进程失败,SSIS 在父容器中执行文件任务
【发布时间】:2017-01-16 07:19:50
【问题描述】:

我正在尝试创建一个使用 SSIS 将 excel 文件导入数据库的包。

由于操作必须定期执行,文件名遵循约定但不相同,同样工作表/选项卡名称也不总是相同,因此 SSIS 包设置如下:

主容器 -> First For Each 容器(称为 FE1) 获取文件名(分配给变量) -> 每个容器的第二个(称为 FE2) 获取工作表名称并开始导入过程。

我所做的是创建一个从 FE2 到 FE1 中的文件系统任务进程的“失败”优先约束。

这个想法是,如果由于某种原因导入不成功,则文件移动完成。

(一旦它工作,我想创建一个将文件移动到存档文件夹的“成功”过程)

文件任务进程在“每个容器”只有一个时工作(即没有像现在这样嵌套),但当所有进程都在嵌套容器中并引用“文件正在使用”时它会失败。我假设这是因为每个容器的第一个锁定文件,因此我将文件任务进程移动到每个容器的第一个并使用了先例控件。

非常感谢任何帮助和建议。

【问题讨论】:

    标签: ssis ssis-2016


    【解决方案1】:

    为了其他可能有同样问题的人的利益:

    为了爱和金钱,我无法让 excel 连接器释放文件,即使移动文件任务在循环之外。

    最后,我记录了被移动到数据库中的表中的文件,然后执行了第二个包含移动文件任务的包,并将使用成功导入(和导入失败)文件的列表遍历表行并根据失败/成功标志将它们移动到目的地。

    这是我成功实现这一目标的唯一途径。

    当必须遍历每个 excel 文件的工作表时(即两个有效的 excel 连接),SSIS 不会释放文件,所以我永远收到文件在使用中的错误和失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 2016-01-15
      相关资源
      最近更新 更多