0

我正在学习 informatica powercenter。我能够在两个视图之间进行内部连接。我在 User Defined Join 中添加了 INNER JOIN,但单击 Validate 时仍必须在 Sql Query 中进行正确更改。当我加入 VIEWS 时,我是否只需要添加到用户定义的加入?

这是我的问题。我得到了另一个一对多的视图,所以这将是我添加到查询中的第三个视图。我在 TOAD 上运行了这个。如何将此添加到 Infromatica?我是否只是避免使用 Sql 查询部分并将整个查询添加到用户定义的查询中?LISTAGG 在 Informatica 中有效吗?

如果不在 LISTAGG 查询(一对多关系)中,是更好还是有办法在表达式转换等转换中做到这一点?

谢谢。

此查询是 SELECT、LISTAGG、CASE

SELECT PERSON_ID, 
       FIRST_NAME,
       MIDDLE_NAME,
       LAST_NAME,
       LISTAGG(val,',') WITHIN GROUP (ORDER BY Table2.SKILL_SHORT_DESC )  

FROM (SELECT DISTINCT  Table1.PERSON_ID, 
       Table1.FIRST_NAME,
       Table1.MIDDLE_NAME,
       Table1.LAST_NAME,
       (case  
            when Table2.SKILL_SHORT_DESC = '1' then '1:1'
            when Table2.SKILL_SHORT_DESC = '2' then '2:2'
            when Table2.SKILL_SHORT_DESC = '3' then '3:3'
            when Table2.SKILL_SHORT_DESC = '4' then '4:4'
            when Table2.SKILL_SHORT_DESC = '5' then '5:5'
            when Table2.SKILL_SHORT_DESC = '6' then '6:6'
            when Table2.SKILL_SHORT_DESC = '7' then '7:7'
            when Table2.SKILL_SHORT_DESC = '8' then '8:8'
            when Table2.SKILL_SHORT_DESC = '9' then '9:9'


            else ''

        end) as val  

FROM Table1
LEFT JOIN Table2

ON Table2.PERSON_ID = Table1.PERSON_ID
)
GROUP BY PERSON_ID,FIRST_NAME,MIDDLE_NAME, LAST_NAME
4

2 回答 2

0

请按照以下步骤,

  1. 从表中获取任何虚拟源
  2. 在源限定符中,删除所有端口并创建所需的端口
  3. 在属性 --> Sql 查询中,添加您创建的查询。无需提供任何用户定义的连接

以下是屏幕截图,以便更好地理解。

在此处输入图像描述

在此处输入图像描述

于 2020-05-24T14:15:51.960 回答
0

是的,LISTAGG 应该可以工作。假设您使用的是 oracle,它应该可以工作 10.x 和更高版本。坦率地说,Informatica 并不关心您编写的 SQL 内容,但重要的是发布 SQL 的数据库。您可以写“我是蝙蝠侠”,infa 将返回“无效语法”。

库希克

于 2016-07-19T07:14:01.147 回答