<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5175210833092792210</id><updated>2026-10-07T17:03:28.515+05:30</updated><category term="Informatica"/><category term="Transformations"/><category term="Scenarios"/><category term="Interview Question"/><category term="Lookup transformation"/><category term="SQL commands"/><category term="Connected Lookup Transformation"/><category term="Unconnected Lookup Transformation"/><category term="Filter transformation"/><category term="Aggregator transformation"/><category term="Data Warehouse"/><category term="Router transformation"/><category term="Sorter transformation"/><category term="Union transformation"/><category term="Business Intelligence"/><category term="Cache"/><category term="Expression transformation"/><category term="Features"/><category term="Informatica PowerCenter"/><category term="Informatica Software Architecture"/><category term="Joiner Transformation"/><category term="Mapping"/><category term="Mapplet"/><category term="ODBC"/><category term="Rank transformation"/><category term="Sequence Generator transformation"/><category term="Source Analyzer"/><category term="Source Qualifier transformation"/><category term="Stored Procedure transformation"/><category term="Target Designer"/><category term="Update Strategy transformation"/><title type='text'>Informatica PowerCenter</title><subtitle type='html'>Informatica Tutorial, Interview Questions</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1007134424571420034</id><published>2013-05-29T07:38:00.000+05:30</published><updated>2018-10-17T06:28:54.132+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><title type='text'></title><content type='html'>Scenario 1&lt;br /&gt;
&lt;br /&gt;
We have a source table as follows:&lt;br /&gt;
&lt;br /&gt;
We have to move the into the target tables such that one &lt;br /&gt;
&lt;br /&gt;
&lt;table style=&quot;width: 75%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;b&gt;MY SOURCE&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;b&gt;MY TARGET&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 40%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;SNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;C&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;3&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;D&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;4&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;F&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;E&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;G&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;  &lt;td&gt;&lt;/td&gt;  &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 40%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;SNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;C&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;3&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;D&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;4&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;F&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;E&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;G&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
After importing Source and Target, create a Sorter transformation to sort the data.&lt;br /&gt;
Then create an Expression transformation with 3 ports named say v_Name, v_SNo (2 variable ports) and o_Name  (output port).&lt;br /&gt;
Give an expression as follows&lt;br /&gt;
v_Name -&amp;gt; IIF(SNo = v_SNo, v_Name||Name, Name)&lt;br /&gt;
v_SNO -&amp;gt; SNo&lt;br /&gt;
o_Name -&amp;gt; v_Name&lt;br /&gt;
Finally connect the ports to Target, create and execute the session and workflow.</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1007134424571420034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2013/05/scenario-1-we-have-source-table-as.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1007134424571420034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1007134424571420034'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2013/05/scenario-1-we-have-source-table-as.html' title=''/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-7525397414639498149</id><published>2012-10-14T19:42:00.005+05:30</published><updated>2018-10-17T06:28:54.466+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Sequence Generator transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Sequence Generator transformation:</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Sequence Generator transformation is Passive and Connected Transformation.&lt;/li&gt;
&lt;li&gt;The Sequence Generator transformation generates numeric values. Use the Sequence Generator to create unique primary key values, replace missing primary keys, or cycle through a sequential range of numbers.&lt;/li&gt;
&lt;li&gt;We use it to generate Surrogate Key in Data Ware House environment mostly. When we want to maintain history, then we need a key other than Primary Key to uniquely identify the record. So we create a Sequence 1,2,3,4 and so on. We use this sequence as the key.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;For example: &lt;i&gt;If EMPNO is the key, we can keep only one record in target and can’t maintain history. So we use Surrogate key as Primary key and not EMPNO.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;u&gt;&lt;b&gt;Sequence Generator Ports:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The Sequence Generator transformation provides two output ports: &lt;b&gt;NEXTVAL &lt;/b&gt;and &lt;b&gt;CURRVAL&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;We cannot edit or delete these ports.&lt;/li&gt;
&lt;li&gt;Likewise, we cannot add ports to the transformation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;NEXTVAL&lt;/u&gt;&lt;/b&gt;:&amp;nbsp;Use the NEXTVAL port to generate sequence numbers by connecting it to a transformation or target.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;For example, we might connect NEXTVAL to two target tables in a mapping to generate unique primary key values.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;CURRVAL&lt;/u&gt;&lt;/b&gt;:&amp;nbsp;CURRVAL is NEXTVAL plus the Increment By value.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;We typically only connect the CURRVAL port when the NEXTVAL port is already connected to a downstream transformation.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;If we connect the CURRVAL port without connecting the NEXTVAL port, the Integration Service passes a constant value for each row.&lt;/li&gt;
&lt;li&gt;When we connect the CURRVAL port in a Sequence Generator transformation, the Integration Service processes one row in each block. We can optimize performance by connecting only the NEXTVAL port in a mapping.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;u&gt;Points to remember:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;i&gt;If Current value is 1 and end value 10, no cycle option. There are 17 records in source. In this case session will fail.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;If we connect just CURR_VAL only, the value will be same for all records.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;If Current value is 1 and end value 10, cycle option there. Start value is 0. There are 17 records in source. Sequence: 1 2 – 10. 0 1 2 3 –&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;To make above sequence as 1-10 1-20, give Start Value as 1. Start value is used along with Cycle option only.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;If Current value is 1 and end value 10, cycle option there. Start value is 1. There are 17 records in source. Session runs. 1-10 1-7. 7 will be saved in repository. If we run session again, sequence will start from 8.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Use reset option if you want to start sequence from CURR_VAL every time.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/7525397414639498149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/10/sequence-generator-transformation.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7525397414639498149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7525397414639498149'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/10/sequence-generator-transformation.html' title='Sequence Generator transformation:'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1212582921690249979</id><published>2012-10-07T20:24:00.003+05:30</published><updated>2018-10-17T06:28:54.155+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Stored Procedure transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Stored Procedure transformation</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Stored Procedure transformation is a passive transformation. Stored Procedure transformation is a Connected and Unconnected Transformation&lt;/li&gt;
&lt;li&gt;Stored procedures are stored and run within the database.&lt;/li&gt;
&lt;li&gt;A Stored Procedure transformation is an important tool for populating and maintaining databases. Database administrators create stored procedures to automate tasks that are too complicated for standard SQL statements.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;u&gt;Use of Stored Procedure in mapping:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Check the status of a target database before loading data into it.&lt;/li&gt;
&lt;li&gt;Determine if enough space exists in a database.&lt;/li&gt;
&lt;li&gt;Perform a specialized calculation.&lt;/li&gt;
&lt;li&gt;Drop and recreate indexes. Mostly used for this in projects.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;u&gt;Data Passes Between IS and Stored Procedure&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;One of the most useful features of stored procedures is the ability to send data to the stored procedure, and receive data from the stored procedure. There are three types of data that pass between the Integration Service and the stored procedure:&lt;/li&gt;
&lt;li&gt;Input/output parameters: Parameters we give as input and the parameters returned from Stored Procedure.&lt;/li&gt;
&lt;li&gt;Return values: Value returned by Stored Procedure if any.&lt;/li&gt;
&lt;li&gt;Status codes: Status codes provide error handling for the IS during a workflow. The stored procedure issues a status code that notifies whether or not the stored procedure completed successfully. We cannot see this value. The IS uses it to determine whether to continue running the session or stop.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;u&gt;Specifying when the Stored Procedure Runs&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Normal&lt;/b&gt;: The stored procedure runs where the transformation exists in the mapping on a row-by-row basis. We pass some input to procedure and it returns some calculated values. Connected stored procedures run only in normal mode.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pre-load of the Source&lt;/b&gt;: Before the session retrieves data from the source, the stored procedure runs. This is useful for verifying the existence of tables or performing joins of data in a temporary table.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Post-load of the Source&lt;/b&gt;: After the session retrieves data from the source, the stored procedure runs. This is useful for removing temporary tables.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pre-load of the Target&lt;/b&gt;: Before the session sends data to the target, the stored procedure runs. This is useful for dropping indexes or disabling constraints.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Post-load of the Target&lt;/b&gt;: After the session sends data to the target, the stored procedure runs. This is useful for re-creating indexes on the database.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;u&gt;Using a Stored Procedure in a Mapping&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Create the stored procedure in the database.&lt;/li&gt;
&lt;li&gt;Import or create the Stored Procedure transformation.&lt;/li&gt;
&lt;li&gt;Determine whether to use the transformation as connected or unconnected.&lt;/li&gt;
&lt;li&gt;If connected, map the appropriate input and output ports.&lt;/li&gt;
&lt;li&gt;If unconnected, either configure the stored procedure to run pre- or post-session, or configure it to run from an expression in another transformation.&lt;/li&gt;
&lt;li&gt;Configure the session.&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1212582921690249979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/10/stored-procedure-transformation.html#comment-form' title='205 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1212582921690249979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1212582921690249979'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/10/stored-procedure-transformation.html' title='Stored Procedure transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>205</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-3468374940919177435</id><published>2012-07-15T20:41:00.000+05:30</published><updated>2018-10-17T06:28:54.305+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Findind sum of the salary</title><content type='html'>&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Drag source and target tables into Mapping Designer.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Design the mapping as shown below.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUZ2mBKJiTqEkXFK88vvrCFGMAa7FJnizhtJp0cfZ8jQ1CUupC1lfqm3M6FxGAuFKmNv0w1EJ0xVKSfbVVcIzHoyq8ZcMOLbqeb-CLG3LPjJ41XekFcuqd3AOyWl24NxgKdlgBlmXSisf6/s1600/Capture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUZ2mBKJiTqEkXFK88vvrCFGMAa7FJnizhtJp0cfZ8jQ1CUupC1lfqm3M6FxGAuFKmNv0w1EJ0xVKSfbVVcIzHoyq8ZcMOLbqeb-CLG3LPjJ41XekFcuqd3AOyWl24NxgKdlgBlmXSisf6/s400/Capture.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Connect all ports from Source Qualifier transformation to Expression transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Create an output variable in Expression transformation as shown below:&lt;/li&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;o_Sum_Sal = CUME(sal)&lt;/li&gt;
&lt;/ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Connect all ports fromm Expression transformation to target.&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/3468374940919177435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/07/findind-sum-of-salary.html#comment-form' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3468374940919177435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3468374940919177435'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/07/findind-sum-of-salary.html' title='Findind sum of the salary'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUZ2mBKJiTqEkXFK88vvrCFGMAa7FJnizhtJp0cfZ8jQ1CUupC1lfqm3M6FxGAuFKmNv0w1EJ0xVKSfbVVcIzHoyq8ZcMOLbqeb-CLG3LPjJ41XekFcuqd3AOyWl24NxgKdlgBlmXSisf6/s72-c/Capture.JPG" height="72" width="72"/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-7545688604016094034</id><published>2012-07-08T04:15:00.000+05:30</published><updated>2018-10-17T06:28:54.478+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Generating sequence numbers without using Sequence Generator transformation</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6-5Ptr13dDmG3eAVQI97FPd_AIYHsUpZDn7JfoHmmhxNlgwfc9o7emehsCWrr-GEg_EmrGpq7JPlJnhPRWDJV1JK8xR8Qk_16sHKWk9KtBQCVpt-GmaB-M_fzjiVLfvk7ooqYYbgl3i6-/s1600/Capture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6-5Ptr13dDmG3eAVQI97FPd_AIYHsUpZDn7JfoHmmhxNlgwfc9o7emehsCWrr-GEg_EmrGpq7JPlJnhPRWDJV1JK8xR8Qk_16sHKWk9KtBQCVpt-GmaB-M_fzjiVLfvk7ooqYYbgl3i6-/s400/Capture.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Create a target table with a field name SEQ_NO for sequence number.&lt;/li&gt;
&lt;li&gt;Design the Mapping as shown above.&lt;/li&gt;
&lt;li&gt;In the Expression transformation create a variable port and increment it by 1.&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;V_Count=V_Count+1&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;In the Expression transformation create a output port and assign variable port to it.&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;O_Count=V_Count&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Connect O_Count to SEQ_NO.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/7545688604016094034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/07/generating-sequence-numbers-without.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7545688604016094034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7545688604016094034'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/07/generating-sequence-numbers-without.html' title='Generating sequence numbers without using Sequence Generator transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6-5Ptr13dDmG3eAVQI97FPd_AIYHsUpZDn7JfoHmmhxNlgwfc9o7emehsCWrr-GEg_EmrGpq7JPlJnhPRWDJV1JK8xR8Qk_16sHKWk9KtBQCVpt-GmaB-M_fzjiVLfvk7ooqYYbgl3i6-/s72-c/Capture.JPG" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-7439252134738041170</id><published>2012-05-28T19:09:00.000+05:30</published><updated>2012-05-28T19:09:46.824+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Finding Maximum value in the column</title><content type='html'>&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
My source and target tables as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;table style=&quot;width: 75%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;MY SOURCE&lt;/td&gt; &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt; &lt;td&gt;MY TARGET&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;Col_1&lt;/th&gt; &lt;th&gt;Col_2&lt;/th&gt; &lt;th&gt;Col_3&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;0&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;C&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;  &lt;td&gt;&lt;/td&gt;  &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;Col_1&lt;/th&gt; &lt;th&gt;Col_2&lt;/th&gt; &lt;th&gt;Col_3&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;C&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Drag source and taget tables in mapping&lt;/li&gt;
&lt;li&gt;Create an Aggregator t/f and connect all ports from Source Qualifier t/f to Aggregator.&lt;/li&gt;
&lt;li&gt;In Aggregator t/f, create 3 output ports as shown below:&lt;/li&gt;
&lt;ol type=&quot;i&quot;&gt;&lt;li&gt;out_Col1=MAX (Col1)&lt;/li&gt;
&lt;li&gt;out_Col2 = MAX (Col2)&lt;/li&gt;
&lt;li&gt;out_Col3 =MAX (Col3)&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Connect all output ports to target table.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAvYkGuvA-_L4PPIP6zg-wbsvm5tzOkl_QoVTG9eNJjSU5qJHpLqWDywmSLgNIx9jkvEuHnUBfwlHJjaSnncXW4kyoebjVxj4sYhyMOpfIt0ZMGDtixu4oAFGnlNY26n3qCVXfpdTS_HN/s1600/Capture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAvYkGuvA-_L4PPIP6zg-wbsvm5tzOkl_QoVTG9eNJjSU5qJHpLqWDywmSLgNIx9jkvEuHnUBfwlHJjaSnncXW4kyoebjVxj4sYhyMOpfIt0ZMGDtixu4oAFGnlNY26n3qCVXfpdTS_HN/s400/Capture.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;The mapping pipeline as shown above.&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/7439252134738041170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/finding-maximum-value-in-column.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7439252134738041170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/7439252134738041170'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/finding-maximum-value-in-column.html' title='Finding Maximum value in the column'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAvYkGuvA-_L4PPIP6zg-wbsvm5tzOkl_QoVTG9eNJjSU5qJHpLqWDywmSLgNIx9jkvEuHnUBfwlHJjaSnncXW4kyoebjVxj4sYhyMOpfIt0ZMGDtixu4oAFGnlNY26n3qCVXfpdTS_HN/s72-c/Capture.JPG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-8612349942010295823</id><published>2012-05-24T19:48:00.000+05:30</published><updated>2012-05-24T19:48:47.974+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL commands"/><title type='text'>Stored Procedures</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Stored procedures provide a powerful way to code application logic that can be stored on the server. Stored procedures reduce network traffic, improve performance, and improving productivity (statements in a stored procedure only need to be written one time). Additionally, stored procedures can be used to help ensure the integrity of the database (information is entered in a consistent manner).&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In a database management system (DBMS), a stored procedure is a set of Structured Query Language (SQL) statements with an assigned name that&#39;s stored in the database in compiled form so that it can be shared by a number of programs. The use of stored procedures can be helpful in controlling access to data (end-users may enter or change data but do not write procedures), preserving data integrity.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The syntax for a procedure is:&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; text-align: justify;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;b&gt;CREATE&lt;/b&gt; [&lt;b&gt;OR REPLACE&lt;/b&gt;]&lt;b&gt; PROCEDURE&lt;/b&gt; procedure_name&lt;br /&gt;
[ (parameter [,parameter]) ]&lt;br /&gt;
&lt;b&gt;IS&lt;/b&gt;&lt;br /&gt;
[declaration_section]&lt;br /&gt;
&lt;b&gt;BEGIN&lt;/b&gt;&lt;br /&gt;
executable_section&lt;br /&gt;
[&lt;b&gt;EXCEPTION&lt;/b&gt;&lt;br /&gt;
exception_section]&lt;br /&gt;
&lt;b&gt;END &lt;/b&gt;[procedure_name];&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;When you create a procedure or function, you may define parameters. There are three types of parameters that can be declared:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;IN &lt;/b&gt;- The parameter can be referenced by the procedure or function. The value of the parameter can not be overwritten by the procedure or function.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;OUT &lt;/b&gt;- The parameter can not be referenced by the procedure or function, but the value of the parameter can be overwritten by the procedure or function.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;IN OUT&lt;/b&gt; - The parameter can be referenced by the procedure or function and the value of the parameter can be overwritten by the procedure or function.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/8612349942010295823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/stored-procedures.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/8612349942010295823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/8612349942010295823'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/stored-procedures.html' title='Stored Procedures'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-4639186259499524236</id><published>2012-05-24T00:23:00.001+05:30</published><updated>2012-05-24T00:25:52.266+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Interview Question"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Join the data of two tables which does not have common columns</title><content type='html'>&lt;b&gt;&lt;u&gt;Description:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Lets assume I have two source files as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;table style=&quot;width: 75%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;SOURCE 1&lt;/td&gt; &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt; &lt;td&gt;SOURCE 2&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;EmpNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;100&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Sivan&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;200&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Uday&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;300&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Chandu&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;400&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Satish&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;  &lt;td&gt;&lt;/td&gt;  &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;Sal&lt;/th&gt; &lt;th&gt;Location&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2000&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Noida&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;3000&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Banglore&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1800&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Hyderabad&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1500&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Chennai&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
I would like to load the target a shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 40%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;SNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;th&gt;Sal&lt;/th&gt; &lt;th&gt;Location&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;100&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Sivan&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;2000&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Noida&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;200&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Uday&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;3000&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Banglore&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;300&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Chandu&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;1800&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Hyderabad&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;400&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Satish&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;1500&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;Chennai&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Drag Source1, Source2, Target tables.&lt;/li&gt;
&lt;li&gt;Create a Expression t/f and connect SQ_Sorce1 to Expression t/f.&lt;/li&gt;
&lt;li&gt;Create a variable port say v_Dummy&amp;nbsp;and assign default value as 1.&lt;/li&gt;
&lt;li&gt;Create a Expression t/f and connect SQ_Sorce2 to Expression t/f.&lt;/li&gt;
&lt;li&gt;Create a variable port say v_Dummy (with same name and data type used in previous pipeline) and assign default value as 1.&lt;/li&gt;
&lt;li&gt;Join two piplines to a Joiner t/f. The Joinner condition v_dummy=v_dummy.&lt;/li&gt;
&lt;li&gt;Connect all ports to the target.&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/4639186259499524236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/join-data-of-two-tables-which-does-not.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/4639186259499524236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/4639186259499524236'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/join-data-of-two-tables-which-does-not.html' title='Join the data of two tables which does not have common columns'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-3405902415261893392</id><published>2012-05-17T16:17:00.000+05:30</published><updated>2018-10-17T06:28:54.293+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><category scheme="http://www.blogger.com/atom/ns#" term="Update Strategy transformation"/><title type='text'>Update Strategy transformation</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Update Strategy transformation Active and Connected Transformation. The Update Strategy transformation to update, delete or reject rows coming from source based on some condition.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;For example; if Address of a CUSTOMER changes, we can update the old address or keep both old and new address.&amp;nbsp;One row is for old and one for new. This way we maintain the historical data.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Update Strategy is used with Lookup Transformation. In Data warehouse, we create a Lookup on target table to determine&amp;nbsp;whether a row already exists or not. Then we insert, update, delete or reject the source record as per business need.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In PowerCenter, we set the update strategy at two different levels:&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Within a session&lt;/li&gt;
&lt;li&gt;Within a Mapping&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;Update Strategy within a session:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;When we configure a session, we can instruct the IS to either treat all rows in the same way or use instructions&amp;nbsp;coded into the session mapping to flag rows for different database operations.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Session Configuration:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Edit Session -&amp;gt; Properties -&amp;gt; Treat Source Rows as: (Insert, Update, Delete, and Data Driven). Insert is default.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Specifying Operations for Individual Target Tables:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;You can set the following update strategy options:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Insert&lt;/b&gt;: Select this option to insert a row into a target table.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Delete&lt;/b&gt;: Select this option to delete a row from a table.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Update&lt;/b&gt;: We have the following options in this situation:&lt;/li&gt;
&lt;ol type=&quot;i&quot;&gt;&lt;li&gt;Update as Update. Update each row flagged for update if it exists in the target table.&lt;/li&gt;
&lt;li&gt;Update as Insert. Inset each row flagged for update.&lt;/li&gt;
&lt;li&gt;Update else Insert. Update the row if it exists. Otherwise, insert it.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;&lt;b&gt;Truncate&lt;/b&gt;: Select this option to truncate the target table before loading data.&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;Flagging Rows within a Mapping:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Within a mapping, we use the Update Strategy transformation to flag rows for insert, delete, update, or reject.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;table bgcolor=&quot;#FFE87C&quot; border=&quot;1&quot; bordercolor=&quot;#FFE87C&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot; style=&quot;text-align: left; vertical-align: top; width: 80%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #660000;&quot;&gt;Operation&lt;/span&gt;&lt;/div&gt;&lt;/th&gt; &lt;th&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #660000;&quot;&gt;Constant&lt;/span&gt;&lt;/div&gt;&lt;/th&gt; &lt;th&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #660000;&quot;&gt;Numeric Value&lt;/span&gt;&lt;/div&gt;&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;INSERT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DD_INSERT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;0&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;INSERT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DD_INSERT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;0&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;UPDATE&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DD_UPDATE&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;1&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DELETE&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DD_DELETE&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;2&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;REJECT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;DD_REJECT&lt;/div&gt;&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;3&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Update Strategy Expressions:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Frequently, the update strategy expression uses the IIF or DECODE function from the transformation language to&amp;nbsp;test each row to see if it meets a particular condition. You can write these expression in Properties Tab of Update&amp;nbsp;Strategy transformation.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed #999;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;IIF( ( ENTRY_DATE &amp;gt; APPLY_DATE), DD_REJECT, DD_UPDATE )&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;Or&lt;br /&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed #999;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;IIF( ( ENTRY_DATE &amp;gt; APPLY_DATE), 3, 2 )&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/b&gt;: &lt;i&gt;We can configure the Update Strategy transformation to either pass rejected rows to the next transformation&amp;nbsp;&lt;/i&gt;&lt;i&gt;or drop them. To do, see the Properties Tab for the Option.&lt;/i&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/3405902415261893392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/update-strategy-transformation.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3405902415261893392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3405902415261893392'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/update-strategy-transformation.html' title='Update Strategy transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-310800876215991348</id><published>2012-05-15T22:53:00.001+05:30</published><updated>2018-10-17T06:28:54.259+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Connected Lookup Transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Question"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Unconnected Lookup Transformation"/><title type='text'>Interview questions on Lookup transformatioin?</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: The Lookup transformation is passive transformation. Lookup is a transformation to look up data in a flat file or a relational table, view, or synonym.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;There are two types of Lookups in Powercenter Designer, namely:&lt;/div&gt;&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Connected Lookup&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Unconnected Lookup .&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What are the tasks of a lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: We can use the Lookup transformation to perform following:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Get a related value: EMP has DEPTNO but DNAME is not there. We use Lookup to get DNAME from DEPT table based on Lookup Condition.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Perform a calculation: We want only those Employees who’s SAL &amp;gt; Average (SAL). We will write Lookup Override query.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Update slowly changing dimension tables: Most important use. We can use a Lookup transformation to determine whether rows already exist in the target.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. How do you configure a lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: Configure the lookup transformation to perform the following types of lookups:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Relational or flat file lookup&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Pipeline lookup&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Connected or unconnected lookup&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Cached or uncached lookup&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a pipeline lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: A pipeline lookup transformation is used to perform lookup on application sources such as JMS, MSMQ or SAP. A pipeline lookup transformation has a source qualifier as the lookups source.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is connected and unconnected lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: A connected lookup transformation is connected the transformations in the mapping pipeline. It receives source data, performs a lookup and returns data to the pipeline.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;An unconnected Lookup transformation is separate from the pipeline in the mapping. We write an expression using the :LKP reference qualifier to call the lookup within another transformation. Unconnected lookup does not participate in mapping data flow. In fact it is not connected to the other transformation so Informatica server creates a separate cache for unconnected and processing takes place in parallel. That’s why performance increases.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The major advantage of unconnected lookup is its reusability. We can call an unconnected lookup multiple times in the mapping unlike connected lookup.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What are the differences between connected and unconnected lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Connected lookup transformation receives input values directly from the pipeline. Unconnected lookup transformation receives input values from the result of a :LKP expression in another transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Connected lookup transformation can be configured as dynamic or static cache. Unconnected lookup transformation can be configured only as static cache.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Connected lookup transformation can return multiple columns from the same row or insert into the dynamic lookup cache. Unconnected lookup transformation can return one column from each row.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;If there is no match for the lookup condition, connected lookup transformation returns default value for all output ports. If you configure dynamic caching, the Integration Service inserts rows into the cache or leaves it unchanged. If there is no match for the lookup condition, the unconnected lookup transformation returns null.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;In a connected lookup transformation, the cache includes the lookup source columns in the lookup condition and the lookup source columns that are output ports. In an unconnected lookup transformation, the cache includes all lookup/output ports in the lookup condition and the lookup/return port.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Connected lookup transformation passes multiple output values to another transformation. Unconnected lookup transformation passes one output value to another transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Connected lookup transformation supports user-defined values. Unconnected lookup transformation does not support user-defined default values.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. How do you handle multiple matches in lookup transformation? or what is &quot;Lookup Policy on Multiple Match&quot;?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: &quot;Lookup Policy on Multiple Match&quot; option is used to determine which rows that the lookup transformation returns when it finds multiple rows that match the lookup condition. You can select lookup to return first or last row or any matching row or to report an error.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is &quot;Output Old Value on Update&quot;?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: This option is used when dynamic cache is enabled. When this option is enabled, the integration service outputs old values out of the lookup/output ports. When the Integration Service updates a row in the cache, it outputs the value that existed in the lookup cache before it updated the row based on the input data. When the Integration Service inserts a new row in the cache, it outputs null values. When you disable this property, the Integration Service outputs the same values out of the lookup/output and input/output ports.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is &quot;Insert Else Update&quot; and &quot;Update Else Insert&quot;?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: These options are used when dynamic cache is enabled.&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Insert Else Update option applies to rows entering the lookup transformation with the row type of insert. When this option is enabled the integration service inserts new rows in the cache and updates existing rows when disabled, the Integration Service does not update existing rows.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Update Else Insert option applies to rows entering the lookup transformation with the row type of update. When this option is enabled, the Integration Service updates existing rows, and inserts a new row if it is new. When disabled, the Integration Service does not insert new rows.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What are the options available to configure a lookup cache?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: The following options can be used to configure a lookup cache:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Static cache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Dynamic cache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Persistent cache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Recache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Shared Cache&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a cached lookup transformation and uncached lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans:&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Cached lookup transformation: The Integration Service builds a cache in memory when it processes the first row of data in a cached Lookup transformation. The Integration Service stores condition values in the index cache and output values in the data cache. The Integration Service queries the cache for each row that enters the transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Uncached lookup transformation: For each row that enters the lookup transformation, the Integration Service queries the lookup source and returns a value. The integration service does not build a cache.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. How the integration service builds the caches for connected lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: The Integration Service builds the lookup caches for connected lookup transformation in the following ways:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Sequential cache: The Integration Service builds lookup caches sequentially. The Integration Service builds the cache in memory when it processes the first row of the data in a cached lookup transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Concurrent caches: The Integration Service builds lookup caches concurrently. It does not need to wait for data to reach the Lookup transformation.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. How the integration service builds the caches for unconnected lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: The Integration Service builds caches for unconnected Lookup transformations as sequentially.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a dynamic cache?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: To cache a target table or flat file source and insert new rows or update existing rows in the cache, use a Lookup transformation with a dynamic cache. The IS dynamically inserts or updates data in the lookup cache and passes data to the target. Target table is also our lookup table. No good for performance if table is huge.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. When you use a dynamic cache, do you need to associate each lookup port with the input port?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: Yes. You need to associate each lookup/output port with the input/output port or a sequence ID. The Integration Service uses the data in the associated port to insert or update rows in the lookup cache.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What are the different values returned by NewLookupRow port?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: The different values are&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;0 - Integration Service does not update or insert the row in the cache.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;1 - Integration Service inserts the row into the cache.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;2 - Integration Service updates the row in the cache.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a persistent cache?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: If the lookup table does not change between sessions, we can configure the Lookup transformation to use a persistent lookup cache. The IS saves and reuses cache files from session to session, eliminating the time required to read the lookup table.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is Recache?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: If the persistent cache is not synchronized with the lookup table, we can configure the Lookup transformation to rebuild the lookup cache. If Lookup table has changed, we can use this to rebuild the lookup cache.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. What is a shared cache?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans: You can configure multiple Lookup transformations in a mapping to share a single lookup cache. The Integration Service builds the cache when it processes the first Lookup transformation. It uses the same cache to perform lookups for subsequent Lookup transformations that share the cache. There are two types of Shared Cache. They are...&lt;/div&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Unnamed cache: When Lookup transformations in a mapping have compatible caching structures, the IS shares the cache by default. You can only share static unnamed caches.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Named cache: Use a persistent named cache when we want to share a cache file across mappings or share a dynamic and a static cache. The caching structures must match or be compatible with a named cache. You can share static and dynamic named caches.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Q. How do you improve the performance of lookup transformation?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ans:&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Create an index on the columns used in the lookup condition&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Place conditions with equality operator first&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Cache small lookup tables.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Join tables in the database: If the source and the lookup table are in the same database, join the tables in the database rather than using a lookup transformation.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Use persistent cache for static lookups.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Avoid ORDER BY on all columns in the lookup source. Specify explicitly the ORDER By clause on the required columns.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;For flat file lookups, provide Sorted files as lookup source.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/310800876215991348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/interview-questions-on-lookup.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/310800876215991348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/310800876215991348'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/interview-questions-on-lookup.html' title='Interview questions on Lookup transformatioin?'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-757051212170969134</id><published>2012-05-12T12:06:00.002+05:30</published><updated>2018-10-17T06:28:54.490+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Question"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><category scheme="http://www.blogger.com/atom/ns#" term="Unconnected Lookup Transformation"/><title type='text'>How to return muliple values using Unconnected lookup?</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Today we discuss how to return muliple values using Unconnected lookup. First of all, the UnConnected lookup has one return port and returns one column from each row. If the interviewer asked the above scenario, follow the below solution.&lt;/div&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Let us assume EMP will be source table and DEPT will be LOOKUP table.&lt;/li&gt;
&lt;li&gt;Create a target table T_UNCONN_LKP in target designer. Table should contain all ports of EMP table plus DNAME and LOC.&lt;/li&gt;
&lt;li&gt;Go to the Mapping Designer and create the mapping with source, target, lookup and expression transformations as shown below:&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2QGAUYHjPcD0ug0IhErn3On4d_PgzFwZYHP6smV7hH6E8pmB1PG2BgCjew0ZAEIYt04a68sUQeNU62N7O72rcU9FQAdEN5_2FFI8tkq-qMS_EwWdzBNS4mxZDlM2OkH8gRk5lj7_h8kC/s1600/Capture3.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2QGAUYHjPcD0ug0IhErn3On4d_PgzFwZYHP6smV7hH6E8pmB1PG2BgCjew0ZAEIYt04a68sUQeNU62N7O72rcU9FQAdEN5_2FFI8tkq-qMS_EwWdzBNS4mxZDlM2OkH8gRk5lj7_h8kC/s400/Capture3.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;
&lt;li&gt;Then concatnate multiple ports with the separator &#39;&amp;amp;&#39; into single port in Lookup transformation.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzfFSB8RwycFRv8x7oO_yxNTj70IeBpasIUo1VseDeTJPmLltUt4qHpnOxhIyCiWqn83e-uteH1irgdSctGsrmx2tDHFYHx4u31E1u3ITyNuDJ4nSCv2q9oI74XilG8rcRmOV80C-sqtbp/s1600/Capture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;307&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzfFSB8RwycFRv8x7oO_yxNTj70IeBpasIUo1VseDeTJPmLltUt4qHpnOxhIyCiWqn83e-uteH1irgdSctGsrmx2tDHFYHx4u31E1u3ITyNuDJ4nSCv2q9oI74XilG8rcRmOV80C-sqtbp/s400/Capture.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;To do edit Lookup transformation and create a return port (DNAME).&lt;/li&gt;
&lt;li&gt;Then go to Properties tab, there write the following expression in Lookup SQL Over.&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; text-align: justify;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;SELECT dname||&#39;&amp;amp;&#39;||loc FROM dept&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRi3YCwWlXiAxq5ktIq4In2wEgUJMJ_ABOe9QGc17VdnH-86YNnHLYIqAH6yD83I6gZQgsbbTmmlQZ4NNN-dFN-AkPduxpxQ4Z-pKolOxP7MRUzwfDLjiXeD7-rpfMEn6CNXHc0KRjDay0/s1600/Capture1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;253&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRi3YCwWlXiAxq5ktIq4In2wEgUJMJ_ABOe9QGc17VdnH-86YNnHLYIqAH6yD83I6gZQgsbbTmmlQZ4NNN-dFN-AkPduxpxQ4Z-pKolOxP7MRUzwfDLjiXeD7-rpfMEn6CNXHc0KRjDay0/s400/Capture1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;In expression transformation spilt it into multiple ports as follow.&lt;/li&gt;
&lt;li&gt;Declare 2 output variables with&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; text-align: justify;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;o_DName = SUBSTR (dname, 1, (INSTR(dname, &#39;&amp;amp;&#39;, 1))&lt;br /&gt;
o_Loc = SUBSTR(dname, INSTR (dname, &#39;&amp;amp;&#39;))&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Connect all ports from Expression transformation to target table.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/757051212170969134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/how-to-return-muliple-values-using.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/757051212170969134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/757051212170969134'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/how-to-return-muliple-values-using.html' title='How to return muliple values using Unconnected lookup?'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2QGAUYHjPcD0ug0IhErn3On4d_PgzFwZYHP6smV7hH6E8pmB1PG2BgCjew0ZAEIYt04a68sUQeNU62N7O72rcU9FQAdEN5_2FFI8tkq-qMS_EwWdzBNS4mxZDlM2OkH8gRk5lj7_h8kC/s72-c/Capture3.JPG" height="72" width="72"/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-2440496413677367963</id><published>2012-05-12T08:43:00.002+05:30</published><updated>2012-05-12T08:45:26.656+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL commands"/><title type='text'>SUBSTR function in Sql</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;The SUBSTR functions allows you to extract a substring from a string.&amp;nbsp;The syntax for the substr function is:&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; text-align: justify;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;b&gt;SUBSTR &lt;/b&gt;( string, start_position, [ length ] )&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Where&lt;/div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;string is the source string.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;start_position is the position for extraction. The first position in the string is always 1.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;length is optional. It is the number of characters to extract. If this parameter is omitted, substr will return the entire string.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/b&gt;:&lt;/div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;If start_position is 0, then SUBSTR treats start_position as 1 (ie: the first position in the string).&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;If start_position is a positive number, then SUBSTR starts from the beginning of the string.&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;If start_position is a negative number, then SUBSTR starts from the end of the string and counts backwards.&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;If length is a negative number, then SUBSTR will return a NULL value.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;For Example:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;SUBSTR (&#39;This is a Informatica blog&#39;, 11, 11) return &#39;Informatica&#39;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;SUBSTR (&#39;This is a Informatica blog&#39;, 11) return &#39;Informatica blog&#39;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;SUBSTR (&#39;This is a Informatica blog&#39;, -4, 4) return &#39;Blog&#39;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;SUBSTR (&#39;This is a Informatica blog&#39;, -16, 4) return &#39;Info&#39;&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/2440496413677367963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/substr-function-in-sql.html#comment-form' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/2440496413677367963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/2440496413677367963'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/substr-function-in-sql.html' title='SUBSTR function in Sql'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-18625472116234955</id><published>2012-05-12T01:37:00.001+05:30</published><updated>2012-05-12T08:44:29.602+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL commands"/><title type='text'>INSTR function in Sql</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;The INSTR function returns the location of a substring in a string.&amp;nbsp;The syntax for the INSTR function is:&lt;/div&gt;&lt;blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;strong&gt;INSTR&lt;/strong&gt; ( string1, string2 [, start_position [, n&lt;sup&gt;th&lt;/sup&gt;_appearance ] ] )&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;&lt;/blockquote&gt;Where &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;string1 is the string to search.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;string2 is the substring to search for in string1.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;start_position is the position in string1 where the search will start. This argument is optional. If omitted, it defaults to 1. The first position in the string is 1. If the start_position is negative, the function counts back start_position number of characters from the end of string1 and then searches towards the beginning of string1.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;n&lt;sup&gt;th&lt;/sup&gt; appearance is the nth appearance of string2. This is optional. If omitted, it defaults to 1.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/strong&gt;: &lt;em&gt;If string2 is not found in string1, then the INSTR Oracle function will return 0.&lt;/em&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/strong&gt;:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;INSTR (&#39;This is Informatica blog&#39;, &#39;i&#39;) return 3; the first occurrence of &#39;i&#39;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;INSTR (&#39;This is Informatica blog&#39;, &#39;i&#39;, 1, 1) return 3; the first occurrence of &#39;i&#39;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;INSTR (&#39;This is Informatica blog&#39;, &#39;i&#39;, 1, 2) return 6; the second occurrence of &#39;i&#39;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;INSTR (&#39;This is Informatica blog&#39;, &#39;i&#39;, 1, 3) return 9; the third occurrence of &#39;i&#39;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;INSTR (&#39;Tech on the net&#39;, &#39;e&#39;, -3, 2) return 2.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/18625472116234955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/instr-function-in-sql.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/18625472116234955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/18625472116234955'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/instr-function-in-sql.html' title='INSTR function in Sql'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-3469362236097837720</id><published>2012-05-12T01:33:00.000+05:30</published><updated>2018-10-17T06:28:54.317+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Split non-key columns</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/strong&gt;: I have a source table with 3 columns EMPNO, ENAME, LOC. Now I would like to split the source into 2 taget tables based on the primary key EMPNO as one target table contains EMPNO, ENAME and another target table contains EMPNO, LOC as shown below.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;table style=&quot;width: 75%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;       &lt;td&gt;&lt;strong&gt;MY SOURCE&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;       &lt;td&gt;&lt;strong&gt;TARGET_1&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;       &lt;td&gt;&lt;strong&gt;TARGET_2&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;               &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt;                       &lt;th&gt;SNo&lt;/th&gt;                       &lt;th&gt;Name&lt;/th&gt;                       &lt;th&gt;Loc&lt;/th&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;100&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Chandu&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Hyderabad&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;200&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Satish&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Chennai&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;300&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Siva&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Noida&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;400&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Srinivas&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Bengaluru&lt;/td&gt;                     &lt;/tr&gt;
&lt;/tbody&gt;                 &lt;/table&gt;&lt;/td&gt;             &lt;/tr&gt;
&lt;/tbody&gt;         &lt;/table&gt;&lt;/td&gt;       &lt;td&gt;&lt;/td&gt;       &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;               &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt;                       &lt;th&gt;EmpNo&lt;/th&gt;                       &lt;th&gt;EName&lt;/th&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;100&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Chandu&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;200&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Satish&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;300&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Siva&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;400&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Srinivas&lt;/td&gt;                     &lt;/tr&gt;
&lt;/tbody&gt;                 &lt;/table&gt;&lt;/td&gt;             &lt;/tr&gt;
&lt;/tbody&gt;         &lt;/table&gt;&lt;/td&gt;       &lt;td&gt;&lt;/td&gt;       &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;               &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt;                       &lt;th&gt;EmpNo&lt;/th&gt;                       &lt;th&gt;EName&lt;/th&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;100&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Hyderabad&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;200&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Chennai&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;300&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Noida&lt;/td&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;400&lt;/td&gt;                       &lt;td bgcolor=&quot;white&quot;&gt;Bengaluru&lt;/td&gt;                     &lt;/tr&gt;
&lt;/tbody&gt;                 &lt;/table&gt;&lt;/td&gt;             &lt;/tr&gt;
&lt;/tbody&gt;         &lt;/table&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;strong&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/strong&gt;:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Connect all ports from Source transformation to Aggregate transformation.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Connect EMPNO and ENAME ports to one target table.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;And connect EMPNO and LOC ports to another target table.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The final mapping looks like as shown below:&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqb1aVi3j-tV0BCZCqgV-7ijnnkAAn1QB1DrgusQzh_Zd48NqQLb21-5AapIjyHO6CMs99SwHW-ui6ZTGCIIvt2DvOQ3eBbzmqvFWlMOymwKLYikad1zXOykelS9XKfr99ORsJg6doCX7B/s1600/Capture1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqb1aVi3j-tV0BCZCqgV-7ijnnkAAn1QB1DrgusQzh_Zd48NqQLb21-5AapIjyHO6CMs99SwHW-ui6ZTGCIIvt2DvOQ3eBbzmqvFWlMOymwKLYikad1zXOykelS9XKfr99ORsJg6doCX7B/s640/Capture1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/3469362236097837720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/split-non-key-columns.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3469362236097837720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/3469362236097837720'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/split-non-key-columns.html' title='Split non-key columns'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqb1aVi3j-tV0BCZCqgV-7ijnnkAAn1QB1DrgusQzh_Zd48NqQLb21-5AapIjyHO6CMs99SwHW-ui6ZTGCIIvt2DvOQ3eBbzmqvFWlMOymwKLYikad1zXOykelS9XKfr99ORsJg6doCX7B/s72-c/Capture1.JPG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1559639022306623076</id><published>2012-05-10T19:38:00.001+05:30</published><updated>2012-05-10T21:28:20.721+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Sending second half records of the table to target</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol&gt;&lt;li&gt;Drag source and target into the mapping.&lt;/li&gt;
&lt;li&gt;Let us assume EMP is source, and create a new table say T_EMP with same structure as EMP.&lt;/li&gt;
&lt;li&gt;Create the mapping as shown below:&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s1600/SCR1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s640/SCR1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Now edit Source Qualifier tranformation and click on properties tab.&lt;/li&gt;
&lt;li&gt;Enter the following query in SQL Query property:&lt;/li&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;SELECT * FROM emp&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MINUS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SELECT * FROM emp WHERE ROWNUM &amp;lt;= (SELECT COUNT(*)/2 FROM emp&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;li&gt;Save the mapping.&lt;/li&gt;
&lt;li&gt;Finally create session, Workflow and run thee workflow.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1559639022306623076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/sending-second-half-records-of-table-to.html#comment-form' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1559639022306623076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1559639022306623076'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/sending-second-half-records-of-table-to.html' title='Sending second half records of the table to target'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s72-c/SCR1.JPG" height="72" width="72"/><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1353572635157796175</id><published>2012-05-10T19:34:00.002+05:30</published><updated>2012-05-10T21:28:37.993+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Sending first half records of the table to target</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol&gt;&lt;li&gt;Drag source and target into the mapping.&lt;/li&gt;
&lt;li&gt;Let us assume EMP is source, and create a new table say T_EMP with same structure as EMP.&lt;/li&gt;
&lt;li&gt;Create the mapping as shown below:&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s1600/SCR1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s640/SCR1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Now edit Source Qualifier tranformation and click on properties tab.&lt;/li&gt;
&lt;li&gt;Enter the following query in SQL Query property:&lt;/li&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;SELECT * FROM emp WHERE ROWNUM &amp;lt;= (SELECT COUNT(*)/2 FROM emp&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;li&gt;Save the mapping.&lt;/li&gt;
&lt;li&gt;Finally create session, Workflow and run thee workflow.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1353572635157796175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/sending-first-half-record-to-target.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1353572635157796175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1353572635157796175'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/sending-first-half-record-to-target.html' title='Sending first half records of the table to target'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ocRH2QePmOWGwJhVVW73lhmOOV5FVPYHiNPKqFpYZeyRSPA6SzLpgIhdKQjXS2yquZqHSkpYSw_25QvSk5qUTb-961vc8ecPTZs3X0TmHSzm4YXeyc8bYbPVXFyWs23nGU0-oKw7Cj64/s72-c/SCR1.JPG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-6405744768669160472</id><published>2012-05-09T12:44:00.001+05:30</published><updated>2012-05-10T21:27:09.583+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cache"/><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><title type='text'>Lookup Caches</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;We can configure a Lookup transformation to cache the lookup table. The Integration Service (IS) builds a cache in memory when it processes the first row of data in a cached Lookup transformation. The Integration Service also creates cache files by default in the &lt;strong&gt;$PMCacheDir&lt;/strong&gt;. If the data does not fit in the memory cache, the IS stores the overflow values in the cache files. When session completes, IS releases cache memory and deletes the cache files.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/strong&gt;:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;If we use a flat file lookup, the IS always caches the lookup source.&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;We set the Cache type in Lookup Properties.&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Lookup Cache Files:&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Lookup Index Cache&lt;/strong&gt;: Stores data for the columns used in the lookup condition.&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Lookup Data Cache&lt;/strong&gt;: For a connected Lookup transformation, stores data for the connected output ports, not including ports used in the lookup condition. For an unconnected Lookup transformation, stores data from the return port.&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;u&gt;Types of Lookup Caches:&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Static Cache:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;By default, the IS creates a static cache. It caches the lookup file or table and looks up values in the cache for each row that comes into the transformation. The IS does not update the cache while it processes the Lookup transformation.&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Dynamic Cache: &lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;To cache a target table or flat file source and insert new rows or update existing rows in the cache, use a Lookup transformation with a dynamic cache. The IS dynamically inserts or updates data in the lookup cache and passes data to the target. Target table is also our lookup table. No good for performance if table is huge.&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Persistent Cache:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;If the lookup table does not change between sessions, we can configure the Lookup transformation to use a persistent lookup cache. The IS saves and reuses cache files from session to session, eliminating the time required to read the lookup table.&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Recache from Source:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;If the persistent cache is not synchronized with the lookup table, we can configure the Lookup transformation to rebuild the lookup cache. If Lookup table has changed, we can use this to rebuild the lookup cache.&lt;/div&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Shared Cache:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;There are two types of Shared Cache. They are...    &lt;/div&gt;&lt;div style=&quot;margin-left: 40px; text-align: justify;&quot;&gt;&lt;ol type=&quot;i&quot;&gt;&lt;li&gt;&lt;strong&gt;Unnamed cache: &lt;/strong&gt;When Lookup transformations in a mapping have compatible caching structures, the IS shares the cache by default. You can only share static unnamed caches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Named cache: &lt;/strong&gt;Use a persistent named cache when we want to share a cache file across mappings or share a dynamic and a static cache. The caching structures must match or be compatible with a named cache. You can share static and dynamic named caches.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/6405744768669160472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/lookup-caches.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/6405744768669160472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/6405744768669160472'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/lookup-caches.html' title='Lookup Caches'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1745338849067554527</id><published>2012-05-08T19:12:00.007+05:30</published><updated>2018-10-17T06:28:54.179+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Scenarios"/><title type='text'>Concatinate duplicate values</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;table style=&quot;width: 75%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;b&gt;MY SOURCE&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;b&gt;MY TARGET&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;SNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;C&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;3&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;D&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;4&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;F&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;E&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;G&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;table bgcolor=&quot;#663300&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 15%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: white;&quot;&gt; &lt;th&gt;SNo&lt;/th&gt; &lt;th&gt;Name&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;A&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;AC&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;1&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;ACE&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;B&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;2&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;BG&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;3&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;D&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td bgcolor=&quot;white&quot;&gt;4&lt;/td&gt; &lt;td bgcolor=&quot;white&quot;&gt;F&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Here the no. of rows in source and target tables are same; so here we think about Passive transformations.&lt;/li&gt;
&lt;li&gt;After importing Source and Target, create a Sorter transformation to sort the data.&lt;/li&gt;
&lt;li&gt;Then create an Expression transformation with 3 ports named say v_Name, v_SNo (2 variable ports) and o_Name  (output port).&lt;/li&gt;
&lt;li&gt;Give the expressions as follows&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;v_Name as variable port&lt;/li&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153); width: 80%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;IIF(SNo = v_SNo, v_Name||Name, Name)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;li&gt;v_SNO as variable port&lt;/li&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153); width: 80%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;SNo&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;li&gt;o_Name as output port&lt;/li&gt;
&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153); width: 80%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;v_Name&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;/ul&gt;&lt;li&gt;The final mapping looks like..&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsQcFh0KPwyLaH2goAQZe25c52OvrbgAIe8BkaFueQ8S-wICtgNohzZaqgH22LPQ0zYXITlBU1K8VNKKhvCf6PjrsDzUSNsOhzxI2pssT1v1WlscT89l1a3zUGpPUpI3ivMzOQH6KSqPl/s1600/Picture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsQcFh0KPwyLaH2goAQZe25c52OvrbgAIe8BkaFueQ8S-wICtgNohzZaqgH22LPQ0zYXITlBU1K8VNKKhvCf6PjrsDzUSNsOhzxI2pssT1v1WlscT89l1a3zUGpPUpI3ivMzOQH6KSqPl/s640/Picture.JPG&quot; width=&quot;520&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt; Finally connect the ports to Target, create and execute the session and workflow.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1745338849067554527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/concatinate-duplicate-values.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1745338849067554527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1745338849067554527'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/concatinate-duplicate-values.html' title='Concatinate duplicate values'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsQcFh0KPwyLaH2goAQZe25c52OvrbgAIe8BkaFueQ8S-wICtgNohzZaqgH22LPQ0zYXITlBU1K8VNKKhvCf6PjrsDzUSNsOhzxI2pssT1v1WlscT89l1a3zUGpPUpI3ivMzOQH6KSqPl/s72-c/Picture.JPG" height="72" width="72"/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-2825108640125579968</id><published>2012-05-08T05:22:00.001+05:30</published><updated>2018-10-17T06:28:54.236+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Connected Lookup Transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><category scheme="http://www.blogger.com/atom/ns#" term="Unconnected Lookup Transformation"/><title type='text'>Difference between Connected and UnConnected Lookup Transformation:</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol&gt;&lt;li&gt;Connected lookup receives input values directly from mapping pipeline whereas UnConnected lookup receives values from :LKP expression in another transformation.&lt;/li&gt;
&lt;li&gt;Connected lookup trasformation will process each and every row whereas UnConnected lookup will not process each and evry row. It will return the values based expression condition.&lt;/li&gt;
&lt;li&gt;If the LKP condition is not matched the lookup transformation will return the default value in case of Connected lookup. If no match found for the LKP condition, the lookup transformation will return null values in case of Unconnected lookup.&lt;/li&gt;
&lt;li&gt;Connected lookup transformation can use static or dynamic cache, whereas Unconnected lookup can use only static cache.&lt;/li&gt;
&lt;li&gt;Connected lookup returns multiple columns from the same row whereas the UnConnected lookup has one return port and returns one column from each row.&lt;/li&gt;
&lt;li&gt;Connected lookup supports user-defined default values and the UnConnected lookup does not support user defined values.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/2825108640125579968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/difference-between-connected-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/2825108640125579968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/2825108640125579968'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/difference-between-connected-and.html' title='Difference between Connected and UnConnected Lookup Transformation:'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-5176718038530992625</id><published>2012-05-07T06:52:00.003+05:30</published><updated>2012-05-10T21:30:20.527+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><category scheme="http://www.blogger.com/atom/ns#" term="Unconnected Lookup Transformation"/><title type='text'>Unconnected Lookup transformation</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;An unconnected Lookup transformation is separate from the pipeline in the mapping. We write an expression using the :LKP reference qualifier to call the lookup within another transformation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Steps to configure Unconnected Lookup:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Add input ports.&lt;/li&gt;
&lt;li&gt;Add the lookup condition.&lt;/li&gt;
&lt;li&gt;Designate a return value.&lt;/li&gt;
&lt;li&gt;Call the lookup from another transformation.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Example for create a unconnected Lookup Transformation&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Let us assume EMP will be source table and DEPT will be LOOKUP table.&lt;/li&gt;
&lt;li&gt;Create a target table T_UNCONN_LKP in target designer. Table should contain all ports of EMP table plus LOC.&lt;/li&gt;
&lt;li&gt;Go to the Mapping Designer.&lt;/li&gt;
&lt;li&gt;Click Mapping-&amp;gt; Create-&amp;gt; Give name. Ex: m_UNCONN_LKP&lt;/li&gt;
&lt;li&gt;Drag Source and Target table.&lt;/li&gt;
&lt;li&gt;Creat an EXPRESSION transformation and pass all ports from Source Qualifier to EXPRESSION transformation.&lt;/li&gt;
&lt;li&gt;Then connect all fields from EXPRESSION to target except DNAME.&lt;/li&gt;
&lt;li&gt;Create a LOOKUP transformation.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb9OAw1NkDVws6ub4YCw6zVbLyd_2h-gbXJzbV4zdeTtczLIW2q7OEV6Js6bAPDK11vFefYGRYiBRUoWYRMzgXeNFjUgQnETdjZPcPo2nGWg2mFnUjlft1FTUdNJwT9j4j4x2jJ82Ks0kk/s1600/UnConnLKP+(1).JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb9OAw1NkDVws6ub4YCw6zVbLyd_2h-gbXJzbV4zdeTtczLIW2q7OEV6Js6bAPDK11vFefYGRYiBRUoWYRMzgXeNFjUgQnETdjZPcPo2nGWg2mFnUjlft1FTUdNJwT9j4j4x2jJ82Ks0kk/s400/UnConnLKP+(1).JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;As DEPT is the Source definition, click Source and then Select DEPT.&lt;/li&gt;
&lt;li&gt;Click Ok.&lt;/li&gt;
&lt;li&gt;Now Edit the Lookup Transformation. Go to Ports tab.&lt;/li&gt;
&lt;li&gt;As DEPTNO is common in source and Lookup, create a port IN_DEPTNO ports tab. Make it Input port only and Give Datatype same as DEPTNO.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNPskmoAA26WyKnCcziAtDzlkOZmXz2GLpDGIO53di2lyL7QbRKbjqYQlC5iHsQF7GAIfXr4uNvItz2A8_9ANmdqNWVUhOH5RnRxNLOTczIOrsbbDi7qovTDHBEfQvt_UQ1bfxy-w_SJb/s1600/UnConnLKP+(2).JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;242&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNPskmoAA26WyKnCcziAtDzlkOZmXz2GLpDGIO53di2lyL7QbRKbjqYQlC5iHsQF7GAIfXr4uNvItz2A8_9ANmdqNWVUhOH5RnRxNLOTczIOrsbbDi7qovTDHBEfQvt_UQ1bfxy-w_SJb/s400/UnConnLKP+(2).JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Designate LOC as Return Port. Check on R to make it.&lt;/li&gt;
&lt;li&gt;Now add a condition in Condition Tab.&lt;/li&gt;
&lt;li&gt;DEPTNO = IN_DEPTNO and Click Apply and then OK.&lt;/li&gt;
&lt;li&gt;Now we need to call this Lookup from Expression Transformation.&lt;/li&gt;
&lt;li&gt;Edit Expression transformation and create a new output port out_LOC of datatype as LOC.&amp;nbsp;&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggI7cxGbiPDvcfDvYxwYqchZL-SgtmAg3obGzxeUqNTqj9Gr7iZ-oyoxz6Y12Ihqc6to4SgakMjtU4_ldO4a0fbzk6A5ukujFK1bU7d6tBE50WpA9aE6fbd7thkFGQK0OigeDkS2GXYWb5/s1600/UnConnLKP+(4).JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggI7cxGbiPDvcfDvYxwYqchZL-SgtmAg3obGzxeUqNTqj9Gr7iZ-oyoxz6Y12Ihqc6to4SgakMjtU4_ldO4a0fbzk6A5ukujFK1bU7d6tBE50WpA9aE6fbd7thkFGQK0OigeDkS2GXYWb5/s400/UnConnLKP+(4).JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Open the Expression editor and call Lookup as given below:&lt;/li&gt;
&lt;li&gt;We double click Unconn in bottom of Functions tab and as we need only DEPTNO, we pass only DEPTNO as input.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU6XRFSTf88kGTUnlo7g6oCn3iskjHH34UN6vNPEkep1RkSpWNCTnaIm4vZlX0_O242J6EpwQNlV6Ipc9xr4_Yxq1lcTgJSDWZN9HbOFy792E7eOA3H5L0sG_ojkQ7C7nQqq5W8462fhii/s1600/UnConnLKP+(5).JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU6XRFSTf88kGTUnlo7g6oCn3iskjHH34UN6vNPEkep1RkSpWNCTnaIm4vZlX0_O242J6EpwQNlV6Ipc9xr4_Yxq1lcTgJSDWZN9HbOFy792E7eOA3H5L0sG_ojkQ7C7nQqq5W8462fhii/s400/UnConnLKP+(5).JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Write the expression as&lt;b&gt; :LKP.LKPTRANS(&lt;/b&gt;DeptNo&lt;b&gt;)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;The final mapping looks like as below..&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqax9xe0A2M_ncRubMnyX88w89PmMUSPMm72TMcWplMI_mK3C8k_K9P_Paxm7j4m0BWVF3B2v8xVeTBUU26m6jPVoZxP84GiHuuSZBjQeQQPnj2JRcCOTjSj-BmwSFrw9aHSkT054XdQAt/s1600/UnConnLKP+(3).JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqax9xe0A2M_ncRubMnyX88w89PmMUSPMm72TMcWplMI_mK3C8k_K9P_Paxm7j4m0BWVF3B2v8xVeTBUU26m6jPVoZxP84GiHuuSZBjQeQQPnj2JRcCOTjSj-BmwSFrw9aHSkT054XdQAt/s400/UnConnLKP+(3).JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Validate the call in Expression editor and Click OK.&lt;/li&gt;
&lt;li&gt;Then save the mapping.&lt;/li&gt;
&lt;li&gt;Create Session and Workflow. Run the workflow and see the data in target table.&lt;/li&gt;
&lt;li&gt;Note:&lt;/li&gt;
&lt;li&gt;Make sure to give connection information for all tables.&lt;/li&gt;
&lt;li&gt;Make sure to give connection for LOOKUP Table also.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/5176718038530992625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/unconnected-lookup-transformation-is.html#comment-form' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/5176718038530992625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/5176718038530992625'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/unconnected-lookup-transformation-is.html' title='Unconnected Lookup transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb9OAw1NkDVws6ub4YCw6zVbLyd_2h-gbXJzbV4zdeTtczLIW2q7OEV6Js6bAPDK11vFefYGRYiBRUoWYRMzgXeNFjUgQnETdjZPcPo2nGWg2mFnUjlft1FTUdNJwT9j4j4x2jJ82Ks0kk/s72-c/UnConnLKP+(1).JPG" height="72" width="72"/><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-5128192154635941952</id><published>2012-05-05T19:22:00.002+05:30</published><updated>2012-05-10T21:30:36.271+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Connected Lookup Transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Connected Lookup Transformation</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Let us assume that EMP will be source table. DEPT will be LOOKUP table.&lt;/li&gt;
&lt;li&gt;Create a target table T_CONN_LKP_EMP in target designer. Table should contain all ports of EMP table plus DNAME and LOC.&lt;/li&gt;
&lt;li&gt;Creating Mapping by click Tools -&amp;gt; Mapping Designer.&lt;/li&gt;
&lt;li&gt;Click Mapping-&amp;gt; Create-&amp;gt; Give name. Ex: m_CONN_LKP_EMP&lt;/li&gt;
&lt;li&gt;Drag EMP and Target table.&lt;/li&gt;
&lt;li&gt;Connect all fields from SQ_EMP (Source Qualifier transformation) to target except DNAME and LOC.&lt;/li&gt;
&lt;li&gt;Then go to Transformation-&amp;gt; Create -&amp;gt; Select LOOKUP from list. Give name and click Create.&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlDrTLbgVtcjFyNK9qSWF7yjI05taQ7K4UMJA2ii6t4phss8szIAWMYjkPW3i6iKYFjEa2QO1cSRR71eZgbsSCsj5xcEYWVFWDFT537PDVEesEsv2DUe9p1MnfDtk-x1J1O3ik74o85PUB/s1600/LKP1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlDrTLbgVtcjFyNK9qSWF7yjI05taQ7K4UMJA2ii6t4phss8szIAWMYjkPW3i6iKYFjEa2QO1cSRR71eZgbsSCsj5xcEYWVFWDFT537PDVEesEsv2DUe9p1MnfDtk-x1J1O3ik74o85PUB/s640/LKP1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;As DEPT is the Source definition, click Source and then Select DEPT.&lt;/li&gt;
&lt;li&gt;Click Ok.&lt;/li&gt;
&lt;li&gt;Now Pass DEPTNO from SQ_EMP to this Lookup. DEPTNO from SQ_EMP will be named as DEPTNO1. Edit Lookup and rename it to IN_DEPTNO in ports tab.&lt;/li&gt;
&lt;li&gt;Now go to CONDITION tab and add CONDITION.&lt;/li&gt;
&lt;li&gt;DEPTNO = IN_DEPTNO and Click Apply and then OK.&lt;/li&gt;
&lt;li&gt;We are not passing IN_DEPTNO and DEPTNO to any other transformation from LOOKUP; we can edit the lookup transformation and remove the OUTPUT check from them.&lt;/li&gt;
&lt;li&gt;The final mapping look like as shown below..&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPcA7bLB5qkm6ibhO1b5EgTur4pITDGjx0j8aTVPkQ57WimhAD1wQmGP74O_M5_0Ewbn-Hlp9o3c49zCVEHDxdNNNjo3n_CNTHODKt-ypgmKF-XNMe5FbHoppnLbe3ZbSZTZJdFEnUlkIq/s1600/LKP2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPcA7bLB5qkm6ibhO1b5EgTur4pITDGjx0j8aTVPkQ57WimhAD1wQmGP74O_M5_0Ewbn-Hlp9o3c49zCVEHDxdNNNjo3n_CNTHODKt-ypgmKF-XNMe5FbHoppnLbe3ZbSZTZJdFEnUlkIq/s640/LKP2.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Then Mapping -&amp;gt; Validate and save the mapping.&lt;/li&gt;
&lt;li&gt;Create Session and Workflow. Run the workflow and see the data in target table.&lt;/li&gt;
&lt;li&gt;Make sure to give connection information for all tables.&lt;/li&gt;
&lt;li&gt;Make sure to give connection for LOOKUP Table also.&lt;/li&gt;
&lt;li&gt;We use Connected Lookup when we need to return more than one column from Lookup table.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/5128192154635941952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/connected-lookup-transformation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/5128192154635941952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/5128192154635941952'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/connected-lookup-transformation.html' title='Connected Lookup Transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlDrTLbgVtcjFyNK9qSWF7yjI05taQ7K4UMJA2ii6t4phss8szIAWMYjkPW3i6iKYFjEa2QO1cSRR71eZgbsSCsj5xcEYWVFWDFT537PDVEesEsv2DUe9p1MnfDtk-x1J1O3ik74o85PUB/s72-c/LKP1.JPG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-4744269227447761828</id><published>2012-05-05T05:30:00.001+05:30</published><updated>2012-05-10T21:31:07.469+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Lookup transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Lookup transformation</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;The Lookup transformation is passive transformation.&lt;br /&gt;
&lt;br /&gt;
Lookup is a transformation to look up data in a flat file or a relational table, view, or synonym.&lt;br /&gt;
There are two types of Lookups in Powercenter Designer, namely:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Connected Lookup&lt;/li&gt;
&lt;li&gt;Unconnected Lookup .&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
We can import a lookup definition from any flat file or relational database to which both the PowerCenter Client and Server can connect. We can use multiple Lookup transformations in a mapping.&lt;br /&gt;
&lt;br /&gt;
Lookup transformation act as left outer joiner. If a particular null record matches found, then it returns null value.&lt;br /&gt;
&lt;br /&gt;
The PowerCenter Server queries the lookup source based on the lookup ports in the transformation. It compares Lookup transformation port values to lookup source column values based on the lookup condition. Pass the result of the lookup to other transformations and a target.&lt;br /&gt;
&lt;br /&gt;
For example, if we want to retrieve all the sales of a product with an ID 10 and assume that the sales data resides in another table called &#39;Sales&#39;. Here instead of using the sales table as one more source, use Lookup transformation to lookup the data for the product, with ID 10 in sales table.&lt;br /&gt;
&lt;br /&gt;
Different caches can also be used with lookup like static, dynamic, persistent, and shared. The dynamic cache cannot be used while creating an un-connected lookup.&lt;br /&gt;
&lt;br /&gt;
We can use the Lookup transformation to perform following:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Get a related value&lt;/b&gt;: EMP has DEPTNO but DNAME is not there. We use Lookup to get DNAME from DEPT table based on Lookup Condition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Perform a calculation&lt;/b&gt;: We want only those Employees who’s SAL &amp;gt; Average (SAL). We will write Lookup Override query.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Update slowly changing dimension tables&lt;/b&gt;: Most important use. We can use a Lookup transformation to determine whether rows already exist in the target.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;TIP&lt;/u&gt;&lt;/b&gt;: &lt;i&gt;We use Connected Lookup when we need to return more than one column from Lookup table.&lt;/i&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/4744269227447761828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/lookup-transformation.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/4744269227447761828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/4744269227447761828'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/lookup-transformation.html' title='Lookup transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-1816721802590008624</id><published>2012-05-01T18:39:00.004+05:30</published><updated>2012-05-01T18:39:27.785+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Source Qualifier transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Source Qualifier transformation</title><content type='html'>Source Qualifier transformation is active and connected transformation.&lt;br /&gt;
&lt;br /&gt;
The Source Qualifier transformation represents the rows that the PowerCenter Server reads when it runs a&lt;br /&gt;
session.&lt;br /&gt;
&lt;br /&gt;
It is only transformation that is not reusable. And it is the default transformation except in case of XML or COBOL files.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Tasks to performed by Source Qualifier:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Join data originating from the same source database&lt;/b&gt;: We can join two or more tables with primary key-foreign key relationships by linking the sources to one Source Qualifier transformation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Filter rows when the PowerCenter Server reads source data&lt;/b&gt;: If we include a filter condition, the PowerCenter Server adds a WHERE clause to the default query.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Specify an outer join rather than the default inner join&lt;/b&gt;: If we include a user-defined join, the PowerCenter Server replaces the join information specified by the metadata in the SQL query.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Specify sorted ports&lt;/b&gt;: If we specify a number for sorted ports, the PowerCenter Server adds an ORDER BY clause to the default SQL query.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Select only distinct values from the source&lt;/b&gt;: If we choose Select Distinct, the PowerCenter Server adds a SELECT DISTINCT statement to the default SQL query.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Create a custom query to issue a special SELECT statement for the PowerCenter Server to read source data&lt;/b&gt;: For example, you might use a custom query to perform aggregate calculations.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/1816721802590008624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/source-qualifier-transformation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1816721802590008624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/1816721802590008624'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/05/source-qualifier-transformation.html' title='Source Qualifier transformation'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-8838502465465383713</id><published>2012-04-29T22:23:00.003+05:30</published><updated>2012-05-10T21:44:37.965+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL commands"/><title type='text'>What are the Joins?</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;In SQL, a join is a relational operator that combines data from multiple tables into a single result set. The Joiner transformation acts in much the same manner, except that tables can originate from different databases or flat files.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Types of Joins:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;Normal joins&lt;/b&gt;: With a normal join, the PowerCenter Server discards all rows of data from the master and detail source that do not match, based on the condition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Master Outer join&lt;/b&gt;: This join keeps all rows of data from the detail source and the matching rows from the master source. It discards the unmatched rows from the master source.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Detail Outer join&lt;/b&gt;: This join keeps all rows of data from the master source and the matching rows from the detail source. It discards the unmatched rows from the detail source.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Full Outer join&lt;/b&gt;: A full outer join keeps all rows of data from both the master and detail sources.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
In EMP, we have employees with DEPTNO 10, 20, 30 and 50. In DEPT, we have DEPTNO 10, 20, 30 and 40. DEPT will be MASTER table as it has less rows.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Normal Join:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;All employees of 10, 20 and 30 will be there as only they are matching.&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Synax: DEPT.DEPTNO=EMP.DEPTNO&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Master Outer Join:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;All data of employees of 10, 20 and 30 will be there. There will be employees of DEPTNO 50 and corresponding DNAME and LOC columns will be NULL.&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Syntax: {EMP LEFT OUTER JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO}&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Detail Outer Join:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;All employees of 10, 20 and 30 will be there. There will be one record for DEPTNO 40 and corresponding data of EMP columns will be NULL.&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Syntax: {EMP RIGHT OUTER JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO}&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Full Outer Join:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;All data of employees of 10, 20 and 30 will be there. There will be employees of DEPTNO 50 and corresponding DNAME and LOC columns will be NULL. There will be one record for DEPTNO 40 and corresponding data of EMP columns will be NULL.&lt;/div&gt;&lt;blockquote&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border: 1px dashed rgb(153, 153, 153);&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Syntax: {EMP FULL OUTER JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO}&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Caution&lt;/u&gt;&lt;/b&gt;: &lt;i&gt;Curly braces are needed in Syntax.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;b&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/b&gt;: &lt;i&gt;A normal or master outer join performs faster than a full outer or detail outer join.&lt;/i&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/8838502465465383713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/04/what-are-joins.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/8838502465465383713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/8838502465465383713'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/04/what-are-joins.html' title='What are the Joins?'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5175210833092792210.post-406423124399561533</id><published>2012-04-29T06:00:00.000+05:30</published><updated>2012-04-29T06:00:00.394+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica"/><category scheme="http://www.blogger.com/atom/ns#" term="Joiner Transformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Transformations"/><title type='text'>Joiner Transformations</title><content type='html'>Joiner transformations connected and active transformation.&lt;br /&gt;
&lt;br /&gt;
Joiner transformation is an example for horizontal merging of tables..&lt;br /&gt;
&lt;br /&gt;
Used to join source data from two related heterogeneous sources residing in different locations or file systems. Or, we can join data from the same source.&lt;br /&gt;
&lt;br /&gt;
If we need to join &#39;n&#39; tables, then we need &#39;n-1&#39; Joiner transformations.&lt;br /&gt;
&lt;br /&gt;
The Joiner transformation requires atleast two sources with at least one matching port. The Joiner transformation uses a condition that matches one or more pairs of ports between the two sources.&lt;br /&gt;
&lt;br /&gt;
Joiner can&#39;t be used in following conditions:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Either input pipeline contains an Update Strategy transformation.&lt;/li&gt;
&lt;li&gt;We connect a Sequence Generator transformation directly before the Joiner transformation.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Workig with the Joiner transformation:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;In the Mapping, import create Joiner Transformation.&lt;/li&gt;
&lt;li&gt;Edit Joiner Transformation -&amp;gt; Condition Tab&lt;/li&gt;
&lt;li&gt;Add condition&lt;/li&gt;
&lt;ol type=&quot;i&quot;&gt;
&lt;li&gt;In Joiner, one table is called as MASTER and other as DETAIL.&lt;/li&gt;
&lt;li&gt;MASTER table is always cached. We can make any table as MASTER.&lt;/li&gt;
&lt;li&gt;Edit Joiner Transformation -&amp;gt; Ports Tab -&amp;gt; Select M for Master table.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;We can add as many conditions as needed.&lt;/li&gt;
&lt;li&gt;Only = operator is allowed.&lt;/li&gt;
&lt;li&gt;Set Master in Ports tab.&lt;/li&gt;
&lt;li&gt;Mapping -&amp;gt; Validate&lt;/li&gt;
&lt;li&gt;Repository -&amp;gt; Save.&lt;/li&gt;
&lt;li&gt;Create Session and Workflow. Run the workflow and see the data in the target table.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Points to remember:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Table with less number of rows should be made MASTER to improve performance. Because&lt;/li&gt;
&lt;li&gt;When the PowerCenter Server processes a Joiner transformation, it reads rows from both sources concurrently and builds the index and data cache based on the master rows. So table with fewer rows will be read fast and cache can be made as table with more rows is still being read.&lt;/li&gt;
&lt;li&gt;The fewer unique rows in the master, the fewer iterations of the join comparison occur, which speeds the join process.&lt;/li&gt;
&lt;li&gt;If we join Char and Varchar datatypes, the PowerCenter Server counts any spaces that pad Char values as part of the string. So if you try to join the following:&lt;/li&gt;
&lt;div style=&quot;margin-right: 70px;&quot;&gt;
Char (40) = “abcd” and Varchar (40) = “abcd”

&lt;br /&gt;
&lt;div&gt;
Then the Char value is “abcd” padded with 36 blank spaces, and the PowerCenter Server does not join the two fields because the Char field contains trailing spaces.&lt;/div&gt;
&lt;br /&gt;
&lt;li&gt;The Joiner transformation does not match null values.&lt;/li&gt;
&lt;li&gt;Any one of the pipeline contains Sequential transformation, then the Joiner transformation rejects the records.&lt;/li&gt;
&lt;/div&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://informaticatechtiks.blogspot.com/feeds/406423124399561533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/04/joiner-transformations.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/406423124399561533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5175210833092792210/posts/default/406423124399561533'/><link rel='alternate' type='text/html' href='http://informaticatechtiks.blogspot.com/2012/04/joiner-transformations.html' title='Joiner Transformations'/><author><name>Suneel Gudipati</name><uri>http://www.blogger.com/profile/07192385790325323490</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6qe99ivhMylE_9oR16PwE99FN3SZYSK-7GJjLj3fk4BV62Ph79Fnu2VwlupCNy0P7QvLWi5tygpLx4Rtm2rIkWtTFFjeLIZYX5WF5nLK99xMp9XhNILuQWAbb3DySC8/s220/Suneel.jpg'/></author><thr:total>3</thr:total></entry></feed>