-1

如何在 Informatica 中为附加的示例数据编写 IFF 函数。我有一个由不同列组成的目标表。我目前有不同的表达方式。IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,1,1)))='',NULL,LTRIM(RTRIM(SUBSTR(HEADER_INFO,1,1))))

IIF(LTRIM(RTRIM(SUBSTR(DETAIL_INFO,2,4)))='',NULL,LTRIM(RTRIM(SUBSTR(DETAIL_INFO,2,4))))

上面的第一个表达式从下面的第一行中提取 H 并将其分配给 A 列,还有另一个表达式函数将 P 分配给另一列 B,它继续直到到达第一行的最后一个字符并将其分配给P列。上面的第二个IFF函数读取1并将其分配给W列,然后具有不同位置的类似表达式将P分配给某个列X,另一个将009046678402分配给Y列,然后另一个将40分配给Z。我想要什么实现的是,在第二行读取并分配值之后,如果之后的下一行再次以“D”开头,它仍然应该读取它。但是我当前拥有的 IFF 功能,只有在有行交替为 HP... D1 ... D2... D3...在此处输入图像描述D1...、D2...、D3...

HP2519263013900HWA8365C DEFORD DONITA 1245327121 1184950479 2012516 0 201909202019092016 0 D1 P00904667840240

4

1 回答 1

0

我通过为每个字段创建变量端口并将我的 TRIM 中的 null 替换为它们各自的变量端口来解决该问题,如下所示 IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,1,1)))='',v_ID,LTRIM(RTRIM (SUBSTR(HEADER_INFO,1,1)))), IIF(LTRIM(RTRIM(SUBSTR(HEADER_INFO,2,4)))='',v_LST_Name,LTRIM(RTRIM(SUBSTR(HEADER_INFO,2,4))))

于 2020-07-18T22:16:24.767 回答