How to extract original records at one target & Duplicate
records at one target?
Answers were Sorted based on User's Feedback
Answer / sks
Hi,
Yes you can do it by using Expression transformation as
well. Infact, by using 2 SQ (source qualifier) and using
sql queries (as I explained earlier), you can perform the
required task on relational tables only (but not on flat
files etc).
In the case of flat files as source, you will need to use
Expression transformation. But you also need to use sorter
before expression (otherwise record flag will change for
every incoming record & duplicates won't be traced). The
sequence of transformations will be as follows -
Source -> SQ -> Sorter ->Expression ->Router(or 2 filters) -
>Targets
| Is This Answer Correct ? | 6 Yes | 1 No |
yes... add a new column in the sql override by calculating
the count(*) to get how many times the record is repeating.
Using Router we can seperate them into two different
targets.
| Is This Answer Correct ? | 1 Yes | 1 No |
Answer / davan
sq-->sort--exp--riuder--tg1--tg2
In exp V_flag=iif(empno=p_empno,v_flag+1,1)--variable port
p_empno=empno--variable port
0_flag=v_flag--output port
In rouder o_flag>1 one target,default one target
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / kumar
The scenario's.. i want, duplicate records from a table to a
target.. n remaining records to b on another target...
| Is This Answer Correct ? | 0 Yes | 1 No |
Answer / sunil
Its not very clear by using expression transformation.Can
any one eloberate. I am creating one variable port VAR_EMPNO
in exp and giving value as EMPNO.Created one output port
EMPVAR_OP with cond : IFF(EMPNO = VAR_EMPNO,1,0) Based on
this I am filtering and redirecting to two targets but its
not working, is the expression fine over here?
| Is This Answer Correct ? | 1 Yes | 2 No |
Answer / sks
Hi,
If I understand your question correctly, then it is like-
How to send original (distinct) records to one target
(let's say TA) and duplicates to another target (let's say
TB).
It can simply be done as follows -
In your mapping, take the source table containing whole
records (duplicates as well). Now, take 2 source qualifier
(SQ) transformations. The first SQ should
contain 'Distinct' sql query (hope you know that) and the
output ports should go to TA table.
The second SQ should contain the following sql stmt (which
filters only the duplicate records) -
-------------------------------------------
SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno
FROM (SELECT empno, ename, job, mgr, hiredate, sal, comm,
deptno, ROW_NUMBER() OVER (PARTITION BY empno ORDER BY
EMPNO) rn FROM s_assign_1_emp)
WHERE rn > 1
-------------------------------------------
I am using emp table example (hope you can understand it).
Now, the output ports of the seecond SQ should go to TB
table.
This is the simplest way of doing it. Hope it will help.
If you feel any issue, please let me know at
shrikant_rps@yahoo.com
| Is This Answer Correct ? | 1 Yes | 3 No |
What are the active and passive transforamtions?
How to Display top 2 salaries for each department WITHOUT using Rank Transformation And WITHOUT using SQL queries in source qualifier.
i have oracle table A and target B. i don't know how many records. i want get get last record in table A as first record in target table B. write a sql query?
How to join a Flat and Relational Source without using (Joiner, Update and Lookup ) transformations... is it possible? if yes i would like to know how?
What are the types of lookup caches?
10 Answers Accenture, IBM, Informatica,
How Union Transformation is an Active Trans?
scd methodology?
What are the phases in SDLC?
Is it possible to revert a global repository to local one and why?
What is the difference between view and materialised view?
What is a difference between complete, stop and abort?
What is the method of loading 5 flat files of having same structure to a single target and which transformations I can use?