正常化转换的替代?

时间:2017-11-02 06:45:57

标签: informatica

我必须在Informatica Powercenter中不使用Normalizer转换来实现Normalizer转换逻辑。我是否知道我可以实现的所有方式,无论是否知道输入数据中的组数。

3 个答案:

答案 0 :(得分:0)

通过表达式转换和可变端口了解可以实现此功能的组数。但这很乏味。 我不知道自己赢得的团体数量是多少,我很害怕。或者需要创建大量额外的列,希望它足够(但没有证明)。

答案 1 :(得分:0)

尝试使用SQL实现。覆盖源限定符中的以下SQL并尝试加载到目标

规范化器将列转换为informatica中的行。我使用Oracle SQL的“按级别连接”

实现了该方案
    CREATE TABLE MARKS
    (
    NAME VARCHAR2(50),
    SUBJ1 NUMBER,
    SUBJ2 NUMBER,
    SUBJ3 NUMBER);

    INSERT INTO MARKS VALUES ('RAJ',70,80,90);
    INSERT INTO MARKS VALUES ('RAM',70,85,75);
    INSERT INTO MARKS VALUES ('RAVI',90,80,90);
    INSERT INTO MARKS VALUES ('RANI',80,80,95);
    INSERT INTO MARKS VALUES ('RAGHU',73,82,90);

    COMMIT;

    WITH DATA AS (SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 3)
    SELECT NAME,DECODE(L,1,'PHYSICS',2,'CHEMISTRY',3, 'MATHS') AS SUBJECT , 
    DECODE(L ,1,SUBJ1,2,SUBJ2,3,SUBJ3) AS MARKS
    FROM MARKS, DATA 
    ORDER BY NAME;


NAME    SUBJECT     MARKS
raghu   physics     73
raghu   maths       90
raghu   chemistry   82
raj     physics     70
raj     chemistry   80
raj     maths       90
ram     physics     70
ram     maths       75
ram     chemistry   85
rani    chemistry   80
rani    physics     80
rani    maths       95
ravi    maths       90
ravi    physics     90
ravi    chemistry   80

解决方案可能不是动态的,但它符合您的目的。

由于 拉吉

答案 2 :(得分:0)

您可以使用Java Transformation,我在许多实例中使用过Java转换来实现Normalizer提供的结果。