我们正在将 SSIS 包迁移到 Rhino ETL。SSIS 包当前将错误行输出到一个备用目标表,其中所有列都可以为空且为 varchar。好的行会转到真正的目标表,但一旦出错,它会将坏行重定向到另一个错误表。有没有办法让 Rhino ETL 做同样的事情?
目标表是 Sql Server 2008 R2 SP2。
我们正在将 SSIS 包迁移到 Rhino ETL。SSIS 包当前将错误行输出到一个备用目标表,其中所有列都可以为空且为 varchar。好的行会转到真正的目标表,但一旦出错,它会将坏行重定向到另一个错误表。有没有办法让 Rhino ETL 做同样的事情?
目标表是 Sql Server 2008 R2 SP2。
我们所做的是我们必须创建两个流程。第一个将以批量复制写入结束。第二个将逐行写入。
如果批量复制失败,我们将开始逐行处理。
然后,我们覆盖了 OutputCommandOperation 的 Execute 方法,因为它在事务中执行所有操作。因此,一切都将在失败时退出。
我们取出事务,在执行非查询上添加一个 catch,并在异常行中添加一个错误列,并将其从 yield break 更改为 yield return 行。
然后我们在逐行过程中注册了一个 FailWrite 操作,这将是最后一步,它将任何具有错误列的行写入错误目标。