使用下一个记录开始日期在 Informatica 中更新上一个记录结束日期

previous record end date update in informatica using next record start date

关于使用下一个记录开始日期更新上一个记录的结束日期,我遇到了问题。问题是两个记录都以相同的 table 负载进入。除了所有列的组合之外,也没有唯一的行标识符。 示例:来源 Table

HICN       FIRST_NAME       LAST_NAME        M_NAME      DOB(string)  START_DATE
X123        ABC                DEF             M      '  19600101       1/1/2013
Y456        ABC                DEF             M         19600101       2/2/2014
现在,(这是我的业务需求,对此我无能为力)在目标中我有一个额外的列结束日期。这是第一次加载,我必须使用名字、姓氏等的串联组合即时识别 第一条和第二条记录相同,如果(且仅当)成员的 HICN 编号发生变化,我必须更新第一条记录(即使用 HICN X123 记录)的 end_date 和 Start_Date 第二条记录(即用 HICN Y456 记录)所以我的目标应该是这样的:

HICN FIRST_NAME  LAST_NAME   M_NAME     DOB(string)    START_DATE      END DATE
X123  ABC           DEF        M      '  19600101       1/1/2013       2/2/2014
Y456  ABC           DEF        M         19600101       2/2/2014      12/31/1990

我已经想出了如何更新日期列和标志(我在上面没有提到成员的活动和非活动 hicn)一秒钟 运行 但不知道如果两者都如何做到这一点记录来自同一批。任何帮助将不胜感激。谢谢

试试这些选项:

  1. 在目标 table 中创建一个列,如 ROW_ID 和 VARCHAR2(100)

  2. 使用以下表达式在表达式转换中创建一个表达式 -

    MD5(Col1||''||col2||''||...等)

    '*' - 是获得精确输出的分隔符​​

    这个 MD5 函数将生成一个 32 位掩码,我们将在接下来的步骤中使用它

  3. 对目标进行动态查找 table

现在,每次收到新行时,它都会被添加到目标以及动态查找。因此,如果您尝试将 ROW_ID 字段与计算出的第 2 行 ROW_ID 匹配,您可以轻松找出重复记录。

MD5 是使用整个列列表查找重复项的最好和最快的方法之一。不要忘记创建 Dynamic Lookup 否则您将无法找到重复项。

如果您需要更多信息,请告诉我。