0

源文件列每次都在不断变化,因此目标表中的数据变得混乱。我想通过在 informatica 云中创建一些程序来避免这个问题,它将使用现有(正确的)源文件检查传入源文件的列顺序和列名。如果列匹配,则只有它应该继续将数据插入目标。否则它应该使工作失败。提前致谢

4

1 回答 1

1

您可以通过两种方式进行操作。
选项 1 - 使用 UNIXhead -1 dailyfile > file1head -1 modelfile > file2. 然后比较file1和file2。如果两者相同,那么它是一个很好的文件,否则将 dailyfile 替换为 0 字节文件并通知支持团队(或做任何你想做的事情)。

选项 2 - 有点棘手。
创建两条管道 - 一条用于模型文件,一条用于dailyfile。
附加一个 exp 转换并添加序列 gen(总是从 1 开始)。
然后放置一个过滤器并选择nextval = 1。
然后使用连接器比较过滤结果(您可以连接所有列或将它们连接成一个长字符串并在该列上进行比较。) - 如果它们相同,则生成标志='Pass'否则'NoPass'。连接 SQ_dailyfile 和这个输出 - 连接条件将在这个标志列上。如果'Pass'='Pass',它将产生行否则0行。您也可以ABORT()在 flag = 'NoPass' 时调用。
整个映射应如下图所示。
整个地图图

于 2021-06-29T13:55:12.043 回答