Informatica
9 Scenario:
Need to lookup on File with multiple records and extract records with specific
condition (For example in this case only account number starting with “12”)
Source File
ID
|
User_Name
|
1
|
James
|
2
|
Williams
|
3
|
Ravi
|
Lookup file
ID
|
Account_Name
|
Account_number
|
1
|
Acc _James_1
|
123232
|
1
|
Acc _James_2
|
45778266
|
2
|
Acc _ Williams_1
|
5455546
|
2
|
Acc _ Williams_2
|
1234343
|
3
|
Acc _ Ravi_1
|
254589
|
3
|
Acc _ Ravi_2
|
12544456
|
Expected Output
ID
|
Account_Name
|
Account_number
|
User_Name
|
1
|
Acc _James_1
|
123232
|
James
|
2
|
Acc _ Williams_2
|
1234343
|
Williams
|
3
|
Acc _ Ravi_2
|
12544456
|
Ravi
|
a)In the Lookup condition give the option for
Multiple Output for the matching records (this option only available for Informatica
9).The output in Lookup will be as below(Data in Expression)
ID
|
Account_Name
|
Account_number
|
User_Name
|
1
|
Acc _James_1
|
123232
|
James
|
1
|
Acc _James_2
|
45778266
|
James
|
2
|
Acc _ Williams_1
|
5455546
|
Williams
|
2
|
Acc _ Williams_2
|
1234343
|
Williams
|
3
|
Acc _ Ravi_1
|
254589
|
Ravi
|
3
|
Acc _ Ravi_2
|
12544456
|
Ravi
|
b)In expression check for the account starting
with “12” using below condition
IIF (SUBSTR (Account_number,
1, 1) =’12’, 1, 0)
c)Next step is quite simple. We can use a filter
and take records only were the flag is 1.The output will be as below
ID
|
Account_Name
|
Account_number
|
User_Name
|
1
|
Acc _James_1
|
123232
|
James
|
2
|
Acc_ Williams_2
|
1234343
|
Williams
|
3
|
Acc _ Ravi_2
|
12544456
|
Ravi
|
A small correction, the substr() length is wrong. it should be 2 not 1.
ReplyDeletewrong: IIF (SUBSTR (Account_number, 1, 1) =’12’, 1, 0)
correct: IIF (SUBSTR (Account_number, 1, 2) =’12’, 1, 0)
Thanks a lot Sketch for your correction..Please keep sharing your ideas on Informatica and Datawarehouse
Deleteplease share the screen shots of lookup transformation Multiple Output for the matching records (this option only available for Informatica 9).
Delete