【问题标题】:Appending a Column in INFORMATICA expression transformation在 INFORMATICA 表达式转换中附加一列
【发布时间】:2020-05-15 13:08:02
【问题描述】:

我有一个场景,我们连接一些字符串,然后在表达式转换中使用 + 操作数将其附加到数据库列

'PWC 映射'||'PWC_MAPPING_NAME'||'- 会话开始'||TO_CHAR(sysdate,'mm/dd/yyyy hh24:mi:ss') ||'|'||+ edw_update_note

但我似乎遇到了错误 + 操作数无法转换为数字错误。

注意:同样的逻辑在 SQL 开发人员中工作正常,请建议我对上述场景的一些解决方案

【问题讨论】:

  • edw_update_note 是数据库列

标签: informatica informatica-powercenter


【解决方案1】:

Informatica 表达式转换使用双管道连接。请使用||。 请使用 -
'PWC mapping '||'PWC_MAPPING_NAME'||'- session start '||TO_CHAR(sysdate,'mm/dd/yyyy hh24:mi:ss') ||'|'|| edw_update_note

  1. 首先在目标表上创建一个查找。使用钥匙获取最新的更新说明。 LKP SQL 将 - select MAX(key) as id, edw_update_note from target order by 1 --
  2. 在表达式转换中,将查找调用为 LKP.LKP_NAME(key)。将其命名为 lkp_edw_update_note。
  3. 然后创建另一个输出端口为 o_edw_update_note 为 'PWC 映射 '||'PWC_MAPPING_NAME'||'- 会话开始 '||TO_CHAR(sysdate,'mm/dd/yyyy hh24:mi:ss') ||'|'|| lkp_edw_update_note
    将此端口连接到目标 edw_update_note。

【讨论】:

  • 我已经在用了||在表达上,你能给我举个例子吗?
  • 您正在使用 + 连接 edw_update_note。请删除它并像回答一样使用表达式。
  • 我们正在尝试附加一个具有最新值的值,例如,有一个名为 EDW_UPDATE_NOTE 的列将数据存储为“PWC 映射名称 - 会话开始 06/22/2017 00:18: 30”以后记录发生了变化,例如,今天我希望数据作为“WC 映射名称 - 会话开始 05/16/2017 00:18:30 | WC 映射名称 -会话开始 06/22/2017 00:18:30”。有没有办法使用表达式转换来实现这个逻辑?
  • 当有更新时,结果显示为“WC 映射名称 - 会话开始 05/16/2017 00:18:30 | WC 映射名称 - 会话开始 05/16/2017 00:18 :30"。而不是显示为“WC 映射名称 - 会话开始 05/16/2017 00:18:30 | WC 映射名称 - 会话开始 06/22/2017 00:18:30”。有没有办法在 Informatica 表达式转换中实现这个逻辑?
  • 我想我在其他线程中回答了你的问题。基本上你需要先通过查找和连接来获取旧的 EDW_UPDATE_NOTE。请参考编辑后的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多