【发布时间】:2016-05-27 06:20:00
【问题描述】:
我必须开发一个将数据从平面文件加载到目标的 informatica 进程(简单的截断和加载),但问题是:
如果被拒绝的行数大于 100,则进程应该停止,即会话应该失败并且目标中的数据必须回滚到加载前的原始数据。
我认为 TC 转换在这里可能有用,但不确定如何使用它。如果我能在这方面得到一些帮助,那就太好了。
谢谢!
【问题讨论】:
我必须开发一个将数据从平面文件加载到目标的 informatica 进程(简单的截断和加载),但问题是:
如果被拒绝的行数大于 100,则进程应该停止,即会话应该失败并且目标中的数据必须回滚到加载前的原始数据。
我认为 TC 转换在这里可能有用,但不确定如何使用它。如果我能在这方面得到一些帮助,那就太好了。
谢谢!
【问题讨论】:
您不能在这种情况下使用 truncate - 这是不可逆的。尝试先将数据加载到临时表中(启用Truncate table 选项)。创建第二个会话,它将执行一组 sql 命令,例如
`truncate table YourTable
insert into YourTable select * from YourTempTable`
用$yourTempTableSession.TgtFailedRows>100 之类的条件将两者联系起来。
要满足第二个要求(即使工作流失败),请添加 Control task 并将其设置为 Abort top level workflow。从临时表会话加载中添加一个链接,其条件类似于$yourTempTableSession.TgtFailedRows>100。
【讨论】: