Let’s say I have more than have record in source table and I
have 3 destination table A,B,C. I have to insert first 1 to
10 records in A then 11 to 20 in B and 21 to 30 in C.
Then again from 31 to 40 in A, 41 to 50 in B and 51 to 60 in
C……So on up to last record.
Answers were Sorted based on User's Feedback
Answer / balachandar
step1).create a sequence generator set the properties
values as increment by=1,end value=30,check cycle and reset
properties.
step2).take the next val of seq generator into expression
transformation and rename it to some meaningfull name say
temp_id
step3).take a router transformation create 3 groups in say
first10,second10 and third10.
and conditions for the groups is as follows...
Tmp_Id >=1 and Tmp_Id<=10,
Tmp_Id >=11 and Tmp_Id<=20
Tmp_Id >=21 and Tmp_Id<=30
step4).connect the router transformation groups to the
respective targets.
| Is This Answer Correct ? | 20 Yes | 1 No |
Answer / ankit kansal
The above answer is work perfectly fine however if interviewer asks to do it with sequence then you can opt this approach.
1)Create a mapping variable of integer type and assign a default value of 30.
2)Mapping Design
SRC->SQ->EXP->ROUTER->TGT
3)EXPRESSION
in_rec i|o in_rec
count v IIF(count<=mapping_variable,count+1,0)
out_count o count
And then using the router route the records to different targets.
http://deepinopensource.blogspot.com/
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / varsha
Source->SQ_>Expression->Router-> Tgt 1,Tgt 2,Tgt 3
in router add three groups
group1:mod(SEQ_NUM,30) >=1 and mod(SEQ_NUM,30) <=10
group2:mod(SEQ_NUM,30) >=11 and mod(SEQ_NUM,30) <=20
group3:mod(SEQ_NUM,30) >=21 and mod(SEQ_NUM,30) <=29 or mod(SEQ_NUM,30)=0
and connect to the respective target
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / kumar
U can do it using Expression and RTR check the below link for more info.. and its has some other very good scenarios
https://etltechsolutions.wordpress.com/2014/10/15/informatica-scenario-split-source-records-and-loading-into-3-targets-based-on-some-logic/
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / nitin
Source->SQ_>Expression->Router-> Tgt 1,Tgt 2,Tgt 3
In the mapping define a variable Run_count of Aggregation type as count
in router add three groups.
Run_count = 1--> then connect the data to tgt 1
Run_Count = 2-->Tgt2
Run_Count = 3-->Tgt3
In the expression transformation add a condition IIF(Run_Count > 3,1,Run_count)
| Is This Answer Correct ? | 0 Yes | 1 No |
what r the propertes of workflow? and write quary to select dept more ten employess in dept.?
how the data will be loaded while desiging the schema?which one first (for e.g.-dimesions and facts)
how can u approach u r client
what is tha tracesing level? and difference betweentrace in normal and verbose and nonverbose?
Can anyone give some input on "Additional Concurrent Pipelines for Lookup Cache Creation" ? I know that this property is used to build caches in a mapping concurently. But which values should I set into this ( i.e. 1 or 2 or 3 or something else ) for concurrent cache building ?
What is the difference between a repository server and a powerhouse?
In EMP table, for those emp whose Hiredate is same, update their sal by "sal+500" or else for others keep the sal as it is, how to do it by SQL query
what is the location of parameter file in informatica?
Explain the difference between mapping parameter and mapping variable?
Without using any transformations how u can load the data into target?
Source table ------------- ID NAME --- ------ 101 PANKAJ NULL KUMAR NULL MATHUR 102 JYOTI NULL SAXENA 103 SACHIN NULL TENDULKAR TARGET TABLE ------------- ID NAME --- ------- 101 PANKAJ KUMAR MATHUR 102 JYOTI SAXENA 103 SACHIN TENDULKAR How to do the above scenario in Informatica.
i have source in oracle 10g,oracle 8i how will u take the data from two sources