<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="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" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8005859072274282998</atom:id><lastBuildDate>Mon, 13 Apr 2026 06:55:07 +0000</lastBuildDate><title>Complete reference to Informatica</title><description></description><link>http://informaticatutorials-naveen.blogspot.com/</link><managingEditor>noreply@blogger.com (Naveen)</managingEditor><generator>Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-6884038289022868637</guid><pubDate>Mon, 27 Feb 2012 07:35:00 +0000</pubDate><atom:updated>2012-02-27T13:05:44.115+05:30</atom:updated><title>Informatica Version Upgrade</title><description>&lt;p&gt;&lt;b&gt;&lt;font color=&quot;#0000ff&quot;&gt;Informatica Upgrade Process: &lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Stages across upgrade can be categorized as below: &lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;b&gt;Upgrading the domain and server file&lt;/b&gt;&lt;b&gt;:&lt;/b&gt; run the Informatica server installer and select the upgrade option. The domain upgrade wizard installs the server files and configures the domain. If the domain has multiple nodes, you must upgrade on all the nodes.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The following table describes the actions that the installer performs when you upgrade Informatica:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;479&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;strong&gt;Tasks &lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;280&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;b&gt;1. Installs Informatica.&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;280&quot;&gt;           &lt;p&gt;Installs Informatica directories and files into the new Directory.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;b&gt;2. Copies infa_shared directory.&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;280&quot;&gt;           &lt;p&gt;Copies the contents of the infa_shared directory from the existing installation directory into the new installation Directory.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;b&gt;3. Copies mm_files directory.&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;280&quot;&gt;           &lt;p&gt;Copies the contents of the mm_files directory from the default location in the existing installation directory into the New installation directory.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;b&gt;4. Upgrades the domain.&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;280&quot;&gt;           &lt;p&gt;Upgrades the domain to run version 9.0.1 application Services.&lt;/p&gt;            &lt;p&gt;The upgrade retains the user and administrator accounts in The domain.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;197&quot;&gt;           &lt;p&gt;&lt;b&gt;5. Starts Informatica Services.&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;299&quot;&gt;           &lt;p&gt;Starts Informatica Services on the node.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.Upgrading the application services:&lt;/b&gt; After you upgrade the domain and server files, log in to the Administrator Tool and upgrade the application services. The service upgrade wizard provides a list of all application that must be upgraded. It upgrades the services based on the order required by the dependent objects.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.Upgrading the Informatica client:&lt;/b&gt; To upgrade the Informatica client, run the Informatica client installer and Select the upgrade option&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Pre-Upgrade Tasks&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Before you upgrade the domain and server files, complete the following tasks:&lt;/p&gt;  &lt;p&gt;1. Review the prerequisites.&lt;/p&gt;  &lt;p&gt;2. Verify the file descriptor settings.&lt;/p&gt;  &lt;p&gt;3. Verify the configuration of the environment variables used by the installer.&lt;/p&gt;  &lt;p&gt;4. Clear the configuration of environment variables that pertain to previous installations of Informatica.&lt;/p&gt;  &lt;p&gt;5. Prepare the domain.&lt;/p&gt;  &lt;p&gt;6. Prepare the Power Center repository.&lt;/p&gt;  &lt;p&gt;7. Prepare the Power Center Profiling warehouse.&lt;/p&gt;  &lt;p&gt;8. Prepare for upgrade from Power Center 8.6.1&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Export Reference Table Manager Data.&lt;/li&gt;    &lt;li&gt; Prepare Metadata Manager.&lt;/li&gt;    &lt;li&gt; Prepare the Data Analyzer repository.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;9. Shut down the domain.&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;strong&gt;Upgrading the Domain and Server in Graphical Mode: &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You can upgrade the Informatica domain and server files in graphical mode on Windows or UNIX.&lt;/p&gt;  &lt;p&gt;1. Verify that your environment meets the minimum system requirements and complete the pre-upgrade tasks.&lt;/p&gt;  &lt;p&gt;2. Log in to the machine with the same user account that you used to install the previous version.&lt;/p&gt;  &lt;p&gt;3. Close all other applications.&lt;/p&gt;  &lt;p&gt;4. To begin the upgrade on Windows, run install.bat from the root directory.&lt;/p&gt;  &lt;p&gt;To begin the upgrade on UNIX, use a shell command line to run install.sh from the root directory, and then Select the option for graphical mode installation.&lt;/p&gt;  &lt;p&gt;5. In the Installation Type window, select Upgrade to Informatica 9.0.1 and click next.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; The Upgrade Pre-Requisites window displays the upgrade system requirements. Verify that all requirements are met before you continue the upgrade.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;6. Click Next.&lt;/p&gt;  &lt;p&gt;7. In the Upgrade Directory window, enter the following directories   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;479&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;210&quot;&gt;           &lt;p&gt;&lt;b&gt;Directory&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;267&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;210&quot;&gt;           &lt;p&gt;1.Directory of the Informatica&lt;/p&gt;            &lt;p&gt;Product to upgrade.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;267&quot;&gt;           &lt;p&gt;Directory that contains the previous version of Power Center that you want to upgrade.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;210&quot;&gt;           &lt;p&gt;2.Directory for Informatica 9.0.1&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;285&quot;&gt;           &lt;p&gt;Directory in which to install Informatica 9.0.1.&lt;/p&gt;            &lt;p&gt;Enter the absolute path for the installation directory. The directory cannot be the same as the directory that contains the previous version of Power Center. The directory names in the path must not contain spaces or the following special characters: @|* $ # ! % ( ) { } [ ] , ; &#39; &lt;/p&gt;            &lt;p&gt;On Windows, the installation directory must be on the current machine.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Click Next.&lt;/p&gt;  &lt;p&gt;The upgrade wizard displays a warning to shut down the Informatica domain before you continue the upgrade.&lt;/p&gt;  &lt;p&gt;9. Click OK.&lt;/p&gt;  &lt;p&gt;10. In the Pre-Installation Summary window, review the upgrade information, and click Install to continue.&lt;/p&gt;  &lt;p&gt;The upgrade wizard installs the Informatica server files to the Informatica 9.0.1 installation directory.&lt;/p&gt;  &lt;p&gt;11. In the Domain Configuration Upgrade window, the upgrade wizard displays the database and user account information for the domain configuration repository to be upgraded.   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;479&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;193&quot;&gt;           &lt;p&gt;&lt;b&gt;Property&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;284&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;193&quot;&gt;           &lt;p&gt;&lt;b&gt;Database type&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;284&quot;&gt;           &lt;p&gt;Database for the domain configuration repository.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;193&quot;&gt;           &lt;p&gt;&lt;b&gt;Database user ID&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;284&quot;&gt;           &lt;p&gt;Database user account for the domain configuration repository.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;193&quot;&gt;           &lt;p&gt;&lt;b&gt;User password&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;284&quot;&gt;           &lt;p&gt;Password for the database user account.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;193&quot;&gt;           &lt;p&gt;&lt;b&gt;Tablespace&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;295&quot;&gt;           &lt;p&gt;Displayed for IBM DB2 only. Name of the tablespace for the upgraded domain configuration repository tables.&lt;/p&gt;            &lt;p&gt;If the database of the domain configuration repository that you are upgrading does not use a 32 K tablespace, this property is blank. Enter the name of a tablespace with a page size of 32 K. In a single-partition database, if you do not specify a tablespace&lt;/p&gt;            &lt;p&gt;name, the installer writes the upgraded tables in the default tablespace. The default tablespace must be 32 K. In a multi-partition database, you must specify a 32 K tablespace.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;The upgrade wizard displays the database connection string for the domain configuration repository based on how the connection string of the previous version was created at installation:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; If the previous version used a JDBC URL at installation, the upgrade wizard displays the JDBC connection properties, including the database address and service name.&lt;/li&gt;    &lt;li&gt; If the previous version used a custom JDBC connection string at installation, the upgrade wizard displays the custom connection string.&lt;/li&gt;    &lt;li&gt; Optionally, you can specify additional JDBC parameters to include in the connection string. To provide Additional JDBC parameters, select JDBC parameters and enter a valid JDBC parameter string.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;12. Click Test Connection to verify that you can connect to the database, and then click OK to continue.&lt;/p&gt;  &lt;p&gt;13. Click Next.&lt;/p&gt;  &lt;p&gt;On the Port Configuration Upgrade window, the upgrade wizard displays the default port numbers assigned to the domain and node components.&lt;/p&gt;  &lt;p&gt;14. You can specify new port numbers or use the default port numbers.&lt;/p&gt;  &lt;p&gt;The following table describes the ports that you can specify:   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;479&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;196&quot;&gt;           &lt;p&gt;&lt;b&gt;Port&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;281&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;196&quot;&gt;           &lt;p&gt;Service Manager port&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;281&quot;&gt;           &lt;p&gt;Port number used by the Service Manager in the node. Client applications and the Informatica command line programs use this port to communicate to the services in the domain.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;196&quot;&gt;           &lt;p&gt;Informatica Administrator port&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;281&quot;&gt;           &lt;p&gt;Port number used by the Administrator tool.&lt;/p&gt;            &lt;p&gt;Available if you upgrade a gateway node.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;196&quot;&gt;           &lt;p&gt;Informatica Administrator&lt;/p&gt;            &lt;p&gt;shutdown port&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;293&quot;&gt;           &lt;p&gt;Port number used by the Administrator tool to listen for shut down commands.&lt;/p&gt;            &lt;p&gt;Available if you upgrade a gateway node.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;15. Click Next.&lt;/p&gt;  &lt;p&gt;On Windows, the upgrade wizard creates a service to start Informatica. By default, the service runs under the same user account as the account used for installation. You can run the Windows service under a different User account.&lt;/p&gt;  &lt;p&gt;16. Select whether to run the Windows service under a different user account.&lt;/p&gt;  &lt;p&gt;The following table describes the properties that you set:   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;&lt;b&gt;Property&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Run Informatica under a&lt;/p&gt;            &lt;p&gt;different user account&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Indicates whether to run the Windows service under a different user account.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;User name&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;User account with which to run the Informatica Windows service.&lt;/p&gt;            &lt;p&gt;Use the following format: DomainName\UserAccount&lt;/p&gt;            &lt;p&gt;This user account must have the Act as operating system permission.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Password&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Password for the user account with which to run the Informatica Windows service.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;17. Click Next.&lt;/p&gt;  &lt;p&gt;The Post-Upgrade Summary window indicates whether the upgrade completed successfully.&lt;/p&gt;  &lt;p&gt;18. Click Done.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color=&quot;#0000ff&quot;&gt;Upgrade the Application Services: &lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;Configure Informatica Environment Variables&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You can configure the INFA_JAVA_OPTS, INFA_DOMAINS_FILE, and INFA_HOME environment variables to store memory, domain, and location settings.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;(i) &lt;/b&gt;&lt;b&gt;INFA_JAVA_OPTS&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For example, to configure 1 GB of system memory for the Informatica daemon on UNIX in a C shells.&lt;/p&gt;  &lt;p&gt;setenv INFA_JAVA_OPTS “-Xmx1024m”&lt;/p&gt;  &lt;p&gt;&lt;b&gt;(ii) &lt;/b&gt;&lt;b&gt;INFA_DOMAINS_FILE&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Set the value of the INFA_DOMAINS_FILE variable to the path and file name of the domains.infa file. If you configure the INFA_DOMAINS_FILE variable, you can run infacmd and pmcmd from a directory other than /server/bin.&lt;/p&gt;  &lt;p&gt;Configure the INFA_DOMAINS_FILE variable on the machine where you install the Informatica services. On Windows, configureINFA_DOMAINS_FILE as a system variable. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;(iii) &lt;/b&gt;&lt;b&gt;INFA_HOME&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use a softlink in UNIX for any of the Informatica directories. To configure INFA_HOME so that any Informatica application or service can locate the other Informatica components it needs to run, set INFA_HOME to the location of the Informatica installation directory.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;Configure Locale Environment Variables&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use the following command to verify that the value for the locale environment variable is compatible with the Language settings for the machine and the type of code page you want to use for the repository:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Eg :&lt;/b&gt; locale –a&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Locale for Oracle Database Clients&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;if the value is american_america.UTF8, set the variable in a C shell with the following command:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;setenv NLS_LANG american_america.UTF8&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Service Upgrade: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Use the service upgrade wizard to upgrade services.&lt;/p&gt;  &lt;p&gt;1. In the Informatica Administrator header area click &lt;b&gt;Manage &lt;/b&gt;&amp;gt; &lt;b&gt;Upgrade&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;2. Select the objects to upgrade.&lt;/p&gt;  &lt;p&gt;3. Click &lt;b&gt;Next&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;4. If dependency errors exist, the &lt;b&gt;Dependency Errors &lt;/b&gt;dialog box appears. Review the dependency errors and click &lt;b&gt;OK&lt;/b&gt;. Then, resolve dependency errors and click &lt;b&gt;next&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;5. Enter the repository login information. Optionally, choose to use the same login information for all Repositories.&lt;/p&gt;  &lt;p&gt;6. Click &lt;b&gt;Next&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;The service upgrade wizard upgrades each service and displays the status and processing details.&lt;/p&gt;  &lt;p&gt;7. When the upgrade completes, the &lt;b&gt;Summary &lt;/b&gt;section displays the list of services and their upgrade status.&lt;/p&gt;  &lt;p&gt;Click each service to view the upgrade details in the &lt;b&gt;Service Details &lt;/b&gt;section.&lt;/p&gt;  &lt;p&gt;8. Optionally, click &lt;b&gt;Save Report &lt;/b&gt;to save the upgrade details to a file.&lt;/p&gt;  &lt;p&gt;If you choose not to save the report, you can click &lt;b&gt;Save Previous Report &lt;/b&gt;the next time you launch the Service upgrade wizard.&lt;/p&gt;  &lt;p&gt;9. Click &lt;b&gt;Close&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;10. Restart upgraded services.&lt;/p&gt;  &lt;p&gt;After you upgrade the PowerCenter Repository Service, you must restart the service and its dependent Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Informatica Client Upgrade&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Close all applications.&lt;/p&gt;  &lt;p&gt;2. Run install.bat from the root directory.&lt;/p&gt;  &lt;p&gt;The Upgrade Pre-Requisites window displays the system requirements. Verify that all installation Requirements are met before you continue the installation.&lt;/p&gt;  &lt;p&gt;3. Click Next.&lt;/p&gt;  &lt;p&gt;On the Select Component window, select the Informatica client you want to upgrade.&lt;/p&gt;  &lt;p&gt;You can upgrade the following Informatica client applications:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Informatica Developer&lt;/li&gt;    &lt;li&gt; PowerCenter Client&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If both Informatica Developer and PowerCenter Client are installed on the machine, you can upgrade the tools in the same process.&lt;/p&gt;  &lt;p&gt;4. On the Upgrade Directory window, enter the following directories:   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;&lt;b&gt;Directory&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Directory of the Informatica&lt;/p&gt;            &lt;p&gt;client to upgrade&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Directory that contains the previous version of the Informatica client tool that you want to upgrade&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Directory for Informatica 9.0.1&lt;/p&gt;            &lt;p&gt;client tools&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;319&quot;&gt;           &lt;p&gt;Directory in which to install the Informatica 9.0.1 client tools&lt;/p&gt;            &lt;p&gt;Enter the absolute path for the installation directory. The installation directory must be on the current machine. The directory names in the path must not contain spaces or the following special characters: @|* $ # ! % ( ) { } [ ] , ; &#39;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;5. Click Next.&lt;/p&gt;  &lt;p&gt;6. On the Pre-Installation Summary window, review the installation information, and click Install.&lt;/p&gt;  &lt;p&gt;The installer copies the Informatica client files to the installation directory.&lt;/p&gt;  &lt;p&gt;The Post-installation Summary window indicates whether the upgrade completed successfully.&lt;/p&gt;  &lt;p&gt;7. Click Done.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Post Upgrade Tasks: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Informatica Domain&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Configure LDAP Connectivity.&lt;/li&gt;    &lt;li&gt; Update the Log Events Directory.&lt;/li&gt;    &lt;li&gt; Update ODBC Data Sources.&lt;/li&gt;    &lt;li&gt; Update Statistics for the Domain Configuration Repository.&lt;/li&gt;    &lt;li&gt; View Log Events from the Previous Informatica Version.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Metadata Manager Service&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Reload Metadata Manager Resources&lt;/li&gt;    &lt;li&gt; Update the Metadata Manager Properties File&lt;/li&gt;    &lt;li&gt; Reference Table Manager&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For detailed study on version Upgrade, you may go through Documents from informatica corporation on upgrade.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2012/02/informatica-version-upgrade.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-1370548561100162592</guid><pubDate>Thu, 18 Aug 2011 05:04:00 +0000</pubDate><atom:updated>2011-08-18T10:34:11.348+05:30</atom:updated><title>Working with the Command Prompt in informatica</title><description>&lt;p&gt;&lt;b&gt;PMCMD:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use pmcmd commands with operating system scheduling tools like cron, or you can embed pmcmd commands into shell or Perl scripts.&lt;/p&gt;  &lt;p&gt;When you run pmcmd in command line mode, you enter connection information such as domain name, Integration Service name, user name and password in each command. For example, to start the workflow “wf_SalesAvg” infolder “SalesEast,” The user, seller3, with the password “jackson” sends the request to start the workflow.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;syntax:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;pmcmd startworkflow -sv MyIntService -d MyDomain -u seller3 -p jackson -f SalesEast wf_SalesAvg&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Command Line Mode:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1. At the command prompt, switch to the directory where the pmcmd executable is located.&lt;/p&gt;  &lt;p&gt;By default, the PowerCenter installer installs pmcmd in the \server\bin directory.&lt;/p&gt;  &lt;p&gt;2. Enter pmcmd followed by the command name and its required options and arguments:&lt;/p&gt;  &lt;p&gt;pmcmd command_name [-option1] argument_1 [-option2] argument_2...&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Interactive Mode : &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1. At the command prompt, switch to the directory where the pmcmd executable is located. By default, the PowerCenter installer installs pmcmd in the \server\bin directory.&lt;/p&gt;  &lt;p&gt;2. At the command prompt, type pmcmd.This starts pmcmd in interactive mode and displays the pmcmd&amp;gt; prompt. You do not have to type pmcmd before each command in interactive mode.&lt;/p&gt;  &lt;p&gt;3. Enter connection information for the domain and Integration Service. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;connect -sv MyIntService -d MyDomain -u seller3 -p jackson&lt;/p&gt;  &lt;p&gt;4. Type a command and its options and arguments in the following format:command_name [-option1] argument_1 [-option2] argument_2...pmcmd runs the command and displays the prompt again.&lt;/p&gt;  &lt;p&gt;5. Type exit to end an interactive session.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;For example,&lt;/b&gt; the following commands invoke the interactive mode, establish a connection to Integration Service“MyIntService,” and start workflows “wf_SalesAvg” and “wf_SalesTotal” in folder “SalesEast”: &lt;/p&gt;  &lt;p&gt;pmcmd&lt;/p&gt;  &lt;p&gt;pmcmd&amp;gt; connect -sv MyIntService -d MyDomain -u seller3 -p jackson&lt;/p&gt;  &lt;p&gt;pmcmd&amp;gt; setfolder SalesEast&lt;/p&gt;  &lt;p&gt;pmcmd&amp;gt; startworkflow wf_SalesAvg&lt;/p&gt;  &lt;p&gt;pmcmd&amp;gt; startworkflow wf_SalesTotal&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scripting pmcmd Commands : &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For example, the following UNIX shell script checks the status of Integration Service “testService,” and if it is running, gets details for session “s_testSessionTask”:&lt;/p&gt;  &lt;p&gt;#!/usr/bin/bash&lt;/p&gt;  &lt;p&gt;# Sample pmcmd script&lt;/p&gt;  &lt;p&gt;# Check if the service is alive&lt;/p&gt;  &lt;p&gt;pmcmd pingservice -sv testService -d testDomain&lt;/p&gt;  &lt;p&gt;if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;/p&gt;  &lt;p&gt;# handle error&lt;/p&gt;  &lt;p&gt;echo &amp;quot;Could not ping service&amp;quot;&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;fi&lt;/p&gt;  &lt;p&gt;# Get service properties&lt;/p&gt;  &lt;p&gt;pmcmd getserviceproperties -sv testService -d testDomain&lt;/p&gt;  &lt;p&gt;if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;/p&gt;  &lt;p&gt;# handle error&lt;/p&gt;  &lt;p&gt;echo &amp;quot;Could not get service properties&amp;quot;&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;fi&lt;/p&gt;  &lt;p&gt;# Get task details for session task &amp;quot;s_testSessionTask&amp;quot; of workflow&lt;/p&gt;  &lt;p&gt;# &amp;quot;wf_test_workflow&amp;quot; in folder &amp;quot;testFolder&amp;quot;&lt;/p&gt;  &lt;p&gt;pmcmd gettaskdetails -sv testService -d testDomain -u Administrator -p adminPass -folder testFolder -&lt;/p&gt;  &lt;p&gt;workflow wf_test_workflow s_testSessionTask&lt;/p&gt;  &lt;p&gt;if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;/p&gt;  &lt;p&gt;# handle error&lt;/p&gt;  &lt;p&gt;echo &amp;quot;Could not get details for task s_testSessionTask&amp;quot;&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;fi&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Schedule Workflow &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Instruct the Integration Service to schedule a workflow. Use this command to reschedule a workflow that has been removed from the schedule.&lt;/p&gt;  &lt;p&gt;The ScheduleWorkflow command uses the following syntax in the command line mode:&lt;/p&gt;  &lt;p&gt;pmcmd ScheduleWorkflow&lt;/p&gt;  &lt;p&gt;&amp;lt;&amp;lt;-service|-sv&amp;gt; service [&amp;lt;-domain|-d&amp;gt; domain] [&amp;lt;-timeout|-t&amp;gt; timeout]&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;&amp;lt;-user|-u&amp;gt; username|&amp;lt;-uservar|-uv&amp;gt; userEnvVar&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;&amp;lt;-password|-p&amp;gt; password|&amp;lt;-passwordvar|-pv&amp;gt; passwordEnvVar&amp;gt;&lt;/p&gt;  &lt;p&gt;[&amp;lt;&amp;lt;-usersecuritydomain|-usd&amp;gt; usersecuritydomain|&amp;lt;-usersecuritydomainvar|-usdv&amp;gt;&lt;/p&gt;  &lt;p&gt;userSecuritydomainEnvVar&amp;gt;]&lt;/p&gt;  &lt;p&gt;[&amp;lt;-folder|-f&amp;gt; folder]&lt;/p&gt;  &lt;p&gt;workflow&lt;/p&gt;  &lt;p&gt;For further study on this topic one can always refer to &lt;a href=&quot;https://communities.informatica.com/docs/DOC-4907&quot;&gt;Informatica 9.1.0 Command Reference&lt;/a&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/08/working-with-command-prompt-in.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-6812217729315079086</guid><pubDate>Sun, 31 Jul 2011 18:27:00 +0000</pubDate><atom:updated>2011-07-31T23:57:14.381+05:30</atom:updated><title>Functions in Informatica</title><description>&lt;p&gt;&lt;b&gt;1&lt;/b&gt; &lt;b&gt;&lt;u&gt;Character Functions:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.1 LENGTH:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The LENGTH function returns the number of characters in a string, including trailing blanks. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;LENGTH (string)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expression returns the length of each customer name:&lt;/p&gt;  &lt;p&gt;LENGTH (CUSTOMER_NAME) &lt;/p&gt;  &lt;p&gt;&lt;u&gt;CUSTOMER_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Leonardo&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;Edwin Britto&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.2 LPAD:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;8&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;12&lt;/p&gt;  &lt;p&gt;The LPAD function adds a set of blanks or characters to the beginning of a string, to set a string to a specified length. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;LPAD (first_string, length [, second_string])&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expression standardizes numbers to five digits by padding them with leading zeros.&lt;/p&gt;  &lt;p&gt;LPAD (NUM, 5, &#39;0&#39;) &lt;/p&gt;  &lt;p&gt;&lt;u&gt;NUM&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1&lt;/p&gt;  &lt;p&gt;250&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.3 LTRIM:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;00001&lt;/p&gt;  &lt;p&gt;00250&lt;/p&gt;  &lt;p&gt;The LTRIM function removes blanks or characters from the beginning of a string. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;LTRIM (string [, trim_set])&lt;/p&gt;  &lt;p&gt;LTRIM (string) removes the leading spaces or blanks from the string. When LTRIM function is used with a trim set, which is optional, it removes the characters in the trim set from the string.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Example&lt;/u&gt; :&lt;/strong&gt; The following expression removes the leading zeroes in the port &lt;/p&gt;  &lt;p&gt;ITEM_CODE.&lt;/p&gt;  &lt;p&gt;LTRIM (ITEM_CODE,&#39;0&#39;)&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_CODE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;006&lt;/p&gt;  &lt;p&gt;0803&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;6&lt;/p&gt;  &lt;p&gt;803&lt;/p&gt;  &lt;p&gt;* The LTRIM function can be nested when needed to remove multiple characters.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.4 RPAD:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The RPAD function converts a string to a specified length by adding blanks or characters to the end of the string. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;RPAD( first_string, length [, second_string ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expression returns the string with a length of 5 characters, appending the string &#39;:&#39; to the end of each word:&lt;/p&gt;  &lt;p&gt;RPAD (WORD, 5, &#39;:’)&lt;/p&gt;  &lt;p&gt;&lt;u&gt;WORD&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Date&lt;/p&gt;  &lt;p&gt;Time&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.5 RTRIM:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Date:&lt;/p&gt;  &lt;p&gt;Time:&lt;/p&gt;  &lt;p&gt;The RTRIM function removes blanks or characters from the end of a string. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;RTRIM (string [, trim_set])&lt;/p&gt;  &lt;p&gt;The RTRIM function can be combined with the LENGTH function if the trailing blanks are to be ignored. It can also be nested when needed to remove multiple characters.&lt;/p&gt;  &lt;p&gt;RTRIM (string) removes the trailing spaces or blanks from the string. When RTRIM function is used with a trimset, which is optional, it removes the characters in the trimset from the string.&lt;/p&gt;  &lt;p&gt;For example,&lt;/p&gt;  &lt;p&gt;RTRIM (ITEM_CODE,&#39;10&#39;)&lt;/p&gt;  &lt;p&gt;The above expression removes the characters 10 in the port ITEM_CODE.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_CODE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;0610&lt;/p&gt;  &lt;p&gt;380&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;06&lt;/p&gt;  &lt;p&gt;38&lt;/p&gt;  &lt;p&gt;In the second example the function removes the trailing zero since the RTRIM compares the first character in the trimset with the last character of the string, since it does not match it takes the second character in the trimset and compares with last character of the string. Since it matches it removes it.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1.6 SUBSTR:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The SUBSTR function returns a portion of a string. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;SUBSTR( string, start [, length ] )&lt;/p&gt;  &lt;p&gt;The SUBSTR may not give the desired result if the string on which it is used is not trimmed. Though it is always a good practice to trim the strings before using them in any expression, it becomes extremely important to trim them if they are used in a SUBSTR function.&lt;/p&gt;  &lt;p&gt;For example, if there is a function&lt;/p&gt;  &lt;p&gt;SUBSTR (NAME, 2,2)&lt;/p&gt;  &lt;p&gt;It will not return the 2,3 characters of the NAME if the port has leading spaces. In this case LTRIM becomes essential.&lt;/p&gt;  &lt;p&gt;SUBSTR(LTRIM(NAME),2,2)&lt;/p&gt;  &lt;p&gt;The SUBSTR function can also be used to get the last few characters as described below.&lt;/p&gt;  &lt;p&gt;SUBSTR(NAME,-3,3)&lt;/p&gt;  &lt;p&gt;This function will return the last three characters of the string. But it may not return the required last three characters if the port has trailing blanks, hence RTRIM is essential.&lt;/p&gt;  &lt;p&gt;SUBSTR(RTRIM(NAME),-3,3)&lt;/p&gt;  &lt;p&gt;Hence it is always better to trim the strings before using them in a SUBSTR function.&lt;/p&gt;  &lt;p&gt;SUBSTR(LTRIM(RTRIM(NAME)),3,2)&lt;/p&gt;  &lt;p&gt;The above expression will get the 3,4 character of the port NAME irrespective of whether the port has leading or trailing blanks or not.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2&lt;/b&gt; &lt;b&gt;&lt;u&gt;Conversion Functions:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.1 TO_CHAR:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The TO_CHAR function converts numeric values and dates to text strings. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;TO_CHAR( numeric_value )&lt;/p&gt;  &lt;p&gt;TO_CHAR (date [, format ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression converts the values in the SALES port to text:&lt;/p&gt;  &lt;p&gt;TO_CHAR (SALES )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SALES&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1800.03&lt;/p&gt;  &lt;p&gt;-22.57891&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;1800.03&#39;&lt;/p&gt;  &lt;p&gt;&#39;-22.57891&#39;&lt;/p&gt;  &lt;p&gt;The following expression converts the dates in the DATE_PROMISED port to text in the format MON DD YYYY:&lt;/p&gt;  &lt;p&gt;TO_CHAR (DATE_PROMISED, &#39;MON DD YYYY&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_PROMISED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apr 1 1998 12:00:10AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;Apr 01 1998&#39;&lt;/p&gt;  &lt;p&gt;If we omit the format_string argument, TO_CHAR returns a string in the default date format ‘MM/DD/YYYY’.&lt;/p&gt;  &lt;p&gt;We can use Conversion functions with DATE functions in order to do some calculations.&lt;/p&gt;  &lt;p&gt;The following composite expression converts the string DATE_PROMISED to date, adds 1 to it and then converts the same to text string with the format YYYYMMDD.&lt;/p&gt;  &lt;p&gt;TO_CHAR(ADD_TO_DATE(TO_DATE(DATE_PROMISED),&#39;DD&#39;,1),&#39;YYYYMMDD&#39;)&lt;/p&gt;  &lt;p&gt;Test functions can also be used with Conversion functions.&lt;/p&gt;  &lt;p&gt;The following expression uses IS_DATE along with TO_CHAR.&lt;/p&gt;  &lt;p&gt;IS_DATE(TO_CHAR(DATE_PROMISED,&#39;YYYYMMDD&#39;))&lt;/p&gt;  &lt;p&gt;* TO_CHAR returns NULL if invalid Date is passed to the function.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.2 TO_DATE:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The TO_DATE function converts a character string to a date datatype in the same format as the character string. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;TO_DATE( string [, format ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression returns date values for the strings in the DATE_PROMISED port. TO_DATE always returns a date and time. If we pass a string that does not have a time value, the date returned always includes the time 00:00:00. If we execute a session in the twentieth century, the century will be 19. &lt;/p&gt;  &lt;p&gt;The current year on the machine running the Informatica Server is 1998:&lt;/p&gt;  &lt;p&gt;TO_DATE( DATE_PROMISED, &#39;MM/DD/YY&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_PROMISED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;12/28/81&#39;&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dec 28 1981 00:00:00&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;The format of the string must exactly be the format given in the TO_DATE function.&lt;/p&gt;  &lt;p&gt;* TO_DATE function fails if invalid date entries are given. To avoid this we must use IS_DATE function to check if the string has a valid date to be converted.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.3 TO_DECIMAL:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The TO_DECIMAL function converts any value (except binary) to a decimal. It is available in the Designer.&lt;/p&gt;  &lt;p&gt;TO_DECIMAL( value [, scale ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; This expression uses values from the port IN_TAX. The datatype is decimal with precision of 10 and scale of 3:&lt;/p&gt;  &lt;p&gt;TO_DECIMAL( IN_TAX, 3 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;IN_TAX&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;15.6789&#39;&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&#39;A12.3Grove&#39;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;15.678&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;0&lt;/p&gt;  &lt;p&gt;We can also use two conversion functions together in a single expression.&lt;/p&gt;  &lt;p&gt;The following expression uses the functions TO_DECIMAL and TO_CHAR.&lt;/p&gt;  &lt;p&gt;TO_DECIMAL(TO_CHAR(DATE_PROMISED,&#39;YYYYMMDD&#39;))&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.4 TO_FLOAT:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The TO_FLOAT function converts any value (except binary) to a double-precision floating point number (the Double datatype). It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;TO_FLOAT( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; This expression uses values from the port IN_TAX: &lt;/p&gt;  &lt;p&gt;TO_FLOAT( IN_TAX )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;IN_TAX&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;15.6789&#39;&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2.5 TO_INTEGER:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;15.6789&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;The TO_INTEGER function converts any value (except binary) to an integer by rounding the decimal portion of a value. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;TO_INTEGER( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; This expression uses values from the port IN_TAX: &lt;/p&gt;  &lt;p&gt;TO_INTEGER( IN_TAX )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;IN_TAX&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&#39;15.6789&#39;&lt;/p&gt;  &lt;p&gt;&#39;60.2&#39;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;16&lt;/p&gt;  &lt;p&gt;60&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3&lt;/b&gt; &lt;b&gt;&lt;u&gt;Date Functions:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Date Format Strings in the Transformation Reference&lt;/p&gt;  &lt;p&gt;D, DD, DDD, DAY, DY, J&lt;/p&gt;  &lt;p&gt;Days (01-31). We can use any of these format strings to specify the entire day portion of a date. For example, if we pass 12-APR-1997 to a date function, we can use any of these format strings specify 12.&lt;/p&gt;  &lt;p&gt;HH, HH12, HH24&lt;/p&gt;  &lt;p&gt;Hour of day (0 to 23), where zero is 12 AM (midnight). We can use any of these formats to specify the entire hour portion of a date. For example, if we pass the date 12-APR-1997 2:01:32 PM, we can use HH, HH12, or HH24 to specify the hour portion of the date.&lt;/p&gt;  &lt;p&gt;MI&lt;/p&gt;  &lt;p&gt;Minutes.&lt;/p&gt;  &lt;p&gt;MM, MON, MONTH &lt;/p&gt;  &lt;p&gt;Month portion of date (0 to 59). We can use any of these format strings to specify the entire month portion of a date. For example, if we pass 12-APR-1997 to a date function, we can use MM, MON, or MONTH to specify APR.&lt;/p&gt;  &lt;p&gt;SS , SSSS &lt;/p&gt;  &lt;p&gt;Second portion of date (0 to 59).&lt;/p&gt;  &lt;p&gt;Y, YY, YYY, YYYY , RR &lt;/p&gt;  &lt;p&gt;Year portion of date (1753 to 9999). We can use any of these format strings to specify the entire year portion of a date. For example, if we pass 12-APR-1997 to a date function, we can use Y, YY, YYY, or YYYY to specify 1997.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.1 ADD_TO_DATE&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The ADD_TO_DATE function adds a specified amount to one part of a date/time value, and returns a date in the same format as the specified date.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If we do not specify the year as YYYY, the Informatica Server assumes the date is in the current century. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;ADD_TO_DATE( date, format, amount )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression adds one month to each date in the &lt;/p&gt;  &lt;p&gt;DATE_SHIPPED port. If we pass a value that creates a day that does not exist in a particular month, the Informatica Server returns the last day of the month. For example, if we add one month to Jan 31 1998, the Informatica Server returns Feb 28 1998.&lt;/p&gt;  &lt;p&gt;Also note, ADD_TO_DATE recognizes leap years and adds one month to Jan 29 2000:&lt;/p&gt;  &lt;p&gt;ADD_TO_DATE( DATE_SHIPPED, &#39;MM&#39;, 1 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 12 1998 12:00:30AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Feb 12 1998 12:00:30AM&lt;/p&gt;  &lt;p&gt;The following expression subtracts 10 days from each date in the DATE_SHIPPED port: &lt;/p&gt;  &lt;p&gt;ADD_TO_DATE( DATE_SHIPPED, &#39;D&#39;, -10 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1997 12:00:30AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dec 22 1996 12:00AM&lt;/p&gt;  &lt;p&gt;The following expression subtracts 15 hours from each date in the DATE_SHIPPED port:&lt;/p&gt;  &lt;p&gt;ADD_TO_DATE( DATE_SHIPPED, &#39;HH&#39;, -15 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1997 12:00:30AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dec 31 1996 9:00:30AM&lt;/p&gt;  &lt;p&gt;In ADD_TO_DATE function, if the argument passed evaluates to a date that does not exist in a particular month, the Informatica Server returns the last day of the month. &lt;/p&gt;  &lt;p&gt;The following expression reveals this.&lt;/p&gt;  &lt;p&gt;ADD_TO_DATE( DATE_SHIPPED, &#39;MON&#39;, 3 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 31 1998 6:24:45PM &lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.2 DATE_COMPARE&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apr 30 1998 6:24:45PM&lt;/p&gt;  &lt;p&gt;The DATE_COMPARE function returns a value indicating the earlier of two dates. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;DATE_COMPARE( date1, date2 )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression compares each date in the DATE_PROMISED and DATE_SHIPPED ports, and returns an integer indicating which date is earlier:&lt;/p&gt;  &lt;p&gt;DA DATE_COMPARE ( DATE_PROMISED, DATE_SHIPPED )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_PROMISED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1997&lt;/p&gt;  &lt;p&gt;Feb 1 1997&lt;/p&gt;  &lt;p&gt;Dec 22 1997&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.3 DATE_DIFF&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 13 1997&lt;/p&gt;  &lt;p&gt;Feb 1 1997&lt;/p&gt;  &lt;p&gt;Dec 15 1997&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;-1&lt;/p&gt;  &lt;p&gt;0&lt;/p&gt;  &lt;p&gt;1&lt;/p&gt;  &lt;p&gt;The DATE_DIFF function returns the length of time between two dates, measured in the specified increment (years, months, days, hours, minutes, or seconds). It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;DATE_DIFF( date1, date2, format )&lt;/p&gt;  &lt;p&gt;Example: The following expressions return the number of days between the DATE_PROMISED and the DATE_SHIPPED ports:&lt;/p&gt;  &lt;p&gt;DATE_DIFF DATE_DIFF ( DATE_PROMISED, DATE_SHIPPED, &#39;D&#39; )&lt;/p&gt;  &lt;p&gt;DATE_DIFF DATE_DIFF ( DATE_PROMISED, DATE_SHIPPED, &#39;DD&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_PROMISED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1997 12:00:00AM&lt;/p&gt;  &lt;p&gt;Mar 29 1997 12:00:00PM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Mar 29 1997 12:00:00PM&lt;/p&gt;  &lt;p&gt;Jan 1 1997 12:00:00AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;-87.5&lt;/p&gt;  &lt;p&gt;87.5&lt;/p&gt;  &lt;p&gt;We can combine DATE functions and TEST functions so as to validate the dates.&lt;/p&gt;  &lt;p&gt;For example, while using the DATE functions like DATE_COMPARE and DATE_DIFF, the dates given as inputs can be validated using the TEST function IS_DATE and then passed to them if valid.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.4 GET_DATE_PART &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The GET_DATE_PART function returns the specified part of a date as an integer value, based on the default date format of MM/DD/YYYY HH24:MI:SS. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;GET_DATE_PART( date, format )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expressions return the day for each date in the &lt;/p&gt;  &lt;p&gt;DATE_SHIPPED port:&lt;/p&gt;  &lt;p&gt;GE GET_DATE_PART ( DATE_SHIPPED, &#39;D&#39; )&lt;/p&gt;  &lt;p&gt;GEGET_DATE_PART ( DATE_SHIPPED, &#39;DD&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Mar 13 1997 12:00:00AM&lt;/p&gt;  &lt;p&gt;June 3 1997 11:30:44PM&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.5 LAST_DAY &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;13&lt;/p&gt;  &lt;p&gt;3&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;The LAST_DAY function returns the date of the last day of the month for each date in a port. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;LAST_DAY( date )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression returns the last day of the month for each date in &lt;/p&gt;  &lt;p&gt;the ORDER_DATE port:&lt;/p&gt;  &lt;p&gt;LAST_DAY( ORDER_DATE )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ORDER_DATE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apr 1 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;Jan 6 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;Apr 30 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;Jan 31 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;DATE functions combine with Conversion functions also.&lt;/p&gt;  &lt;p&gt;The following expression has LAST_DAY and TO_DATE functions nested or combined together.&lt;/p&gt;  &lt;p&gt;LAST_DAY( TO_DATE( GIVEN_DATE, &#39;DD-MON-YY&#39; ))&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.6 MAX&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The MAX function returns the latest date found in a group. It is available in the Designer.&lt;/p&gt;  &lt;p&gt;MAX( date, filter_condition )&lt;/p&gt;  &lt;p&gt;We can return the maximum date for a port or group. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expression returns the maximum order date for flashlights:&lt;/p&gt;  &lt;p&gt;MAX( ORDERDATE, ITEM_NAME=&#39;Flashlight&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Regulator System&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Diving Hood&lt;/p&gt;  &lt;p&gt;Halogen Flashlight&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;RETURN VALUE: Oct 10 1998&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.7 MIN&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ORDER_DATE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apr 20 1998&lt;/p&gt;  &lt;p&gt;May 15 1998&lt;/p&gt;  &lt;p&gt;Sep 21 1998&lt;/p&gt;  &lt;p&gt;Aug 18 1998&lt;/p&gt;  &lt;p&gt;Feb 1 1998&lt;/p&gt;  &lt;p&gt;Oct 10 1998&lt;/p&gt;  &lt;p&gt;The MIN function returns the earliest date found in a group. It is available in the Designer.&lt;/p&gt;  &lt;p&gt;MIN( date, filter_condition )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expression returns the oldest order date for flashlights:&lt;/p&gt;  &lt;p&gt;MIN( ORDER_DATE, ITEM_NAME=&#39;Flashlight&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Regulator System&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Diving Hood&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ORDER_DATE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apr 20 1998&lt;/p&gt;  &lt;p&gt;May 15 1998&lt;/p&gt;  &lt;p&gt;Sep 21 1998&lt;/p&gt;  &lt;p&gt;Aug 18 1998&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxWeQoz0e1zkaVIoDdN3rzfhJZ2iWTDPJtHSrkl3_3-JVd685zr282wW1XC73GibKmj66l_Du7gOE59mt9fFVOJyqdlIfxz5lItzO_qye7cVaKXzEpr95a0zxQ7jT4myKaqknsHm_L8DCp/s1600-h/clip_image004%25255B8%25255D%25255B2%25255D.gif&quot;&gt;&lt;img title=&quot;clip_image004[8]&quot; style=&quot;border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px&quot; height=&quot;1&quot; alt=&quot;clip_image004[8]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfihrSKqwrbiql-_2OSpBd-c_Lr40T10uni-3wAChyphenhyphen-BAezkq4i7CT3WVoiS3A1rT6ywxqHDwIVL2nbE5x2AnVPEue3s9qCMlpUJv8SXSB1j7ZFBIq8IHKQAkx9tZCVga2xCkx8pbP6Kp4/?imgmax=800&quot; width=&quot;240&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Halogen Flashlight&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;RETURN VALUE: Feb 1 1998&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.8 ROUND&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Feb 1 1998&lt;/p&gt;  &lt;p&gt;Oct 10 1998&lt;/p&gt;  &lt;p&gt;The ROUND function rounds one part of a date. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;ROUND( date [, format ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expressions round the month portion of each date in the DATE_SHIPPED port.&lt;/p&gt;  &lt;p&gt;ROUND( DATE_SHIPPED, &#39;MM&#39; )&lt;/p&gt;  &lt;p&gt;ROUND( DATE_SHIPPED, &#39;MON&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 15 1998 2:10:30AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;Similarly the ROUND function can be used to round off Year, Day or Time portions.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.9 SET_DATE_PART&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The SET_DATE_PART function sets one part of a date/time value to a specified value. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;SET_DATE_PART( date, format, value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expressions change the month to June for the dates in the DATE_PROMISED port. The Informatica Server displays an error when we try to create a date that does not exist, such as changing March 31 to June 31: &lt;/p&gt;  &lt;p&gt;SET_DATE_PART( DATE_PROMISED, &#39;MM&#39;, 6 )&lt;/p&gt;  &lt;p&gt;SET_DATE_PART( DATE_PROMISED, &#39;MON&#39;, 6 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_PROMISED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1997 12:15:56AM&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jun 1 1997 12:15:56AM&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;Similarly the SET_DATE_PART function can be used to round off Year, Day or Time portions.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3.10 TRUNC &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The TRUNC function truncates dates to a specific year, month, day, hour, or minute. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;TRUNC( date [, format ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The following expressions truncate the year portion of dates in the DATE_SHIPPED port:&lt;/p&gt;  &lt;p&gt;TRUNC( DATE_SHIPPED, &#39;Y&#39; )&lt;/p&gt;  &lt;p&gt;TRUNC( DATE_SHIPPED, &#39;YY&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;DATE_SHIPPED&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 15 1998 2:10:30AM&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Jan 1 1998 12:00:00AM&lt;/p&gt;  &lt;p&gt;Similarly the TRUNC function can be used to truncate Month , Day or Time portions.&lt;/p&gt;  &lt;p&gt;The functions TRUNC &amp;amp; ROUND can be nested in order to manipulate dates.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4&lt;/b&gt; &lt;b&gt;&lt;u&gt;Special Functions:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4.1 DECODE&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The DECODE function searches a port for the specified value. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;DECODE( value, first_search, first_result [, second_search, second_result ]…[, default ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; We might use DECODE in an expression that searches for a particular ITEM_ID and returns the ITEM_NAME:&lt;/p&gt;  &lt;p&gt;DECODE( ITEM_ID, 10, &#39;Flashlight&#39;,&lt;/p&gt;  &lt;p&gt;14, &#39;Regulator&#39;,&lt;/p&gt;  &lt;p&gt;20, &#39;Knife&#39;,&lt;/p&gt;  &lt;p&gt;40, &#39;Tank&#39;,&lt;/p&gt;  &lt;p&gt;&#39;NONE&#39; )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_ID&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;10&lt;/p&gt;  &lt;p&gt;14&lt;/p&gt;  &lt;p&gt;17&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4.2 IIF &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Regulator&lt;/p&gt;  &lt;p&gt;NONE&lt;/p&gt;  &lt;p&gt;The IIF function returns one of two values we specify, based on the results of a condition. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;IIF( condition, value2 [, value2 ] )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; IIF( SALES &amp;lt; 100, 0, SALARY )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SALES&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;150&lt;/p&gt;  &lt;p&gt;50&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SALARY&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;50,000.00&lt;/p&gt;  &lt;p&gt;20,000.00&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;50,000&lt;/p&gt;  &lt;p&gt;0&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;50,000.41&lt;/p&gt;  &lt;p&gt;50,000&lt;/p&gt;  &lt;p&gt;IIF functions can be nested if there is more than one condition to be tested. But it is always a better option to go for DECODE function when the number of conditions is large since DECODE function is less costlier compared to IIF function.&lt;/p&gt;  &lt;p&gt;For example consider the following expression&lt;/p&gt;  &lt;p&gt;IIF(MARKS&amp;gt;=90,&#39;A&#39;,&lt;/p&gt;  &lt;p&gt;(IIF(MARKS&amp;gt;= 75,&#39;B&#39;,&lt;/p&gt;  &lt;p&gt;(IIF(MARKS&amp;gt;=65,&#39;C&#39;,&lt;/p&gt;  &lt;p&gt;(IIF(MARKS&amp;gt;=55,&#39;D&#39;,&lt;/p&gt;  &lt;p&gt;IIF(MARKS&amp;gt;=45,&#39;E&#39;,&lt;/p&gt;  &lt;p&gt;&#39;F&#39;))))))))&lt;/p&gt;  &lt;p&gt;The same result can be obtained with&lt;/p&gt;  &lt;p&gt;DECODE(TRUE,&lt;/p&gt;  &lt;p&gt;MARKS&amp;gt;=90,&#39;A&#39;,&lt;/p&gt;  &lt;p&gt;MARKS&amp;gt;=75,&#39;B&#39;,&lt;/p&gt;  &lt;p&gt;MARKS&amp;gt;=65,&#39;C&#39;,&lt;/p&gt;  &lt;p&gt;MARKS&amp;gt;=55,&#39;D&#39;,&lt;/p&gt;  &lt;p&gt;MARKS&amp;gt;=45,&#39;E&#39;,&lt;/p&gt;  &lt;p&gt;&#39;F&#39;)&lt;/p&gt;  &lt;p&gt;When the number of conditions increase we will be able to appreciate the simplicity of the DECODE function and the complexity of the IIF function.&lt;/p&gt;  &lt;p&gt;In both the cases , If MARKS&amp;gt;90 it will return &#39;A&#39; though it satisfies all the conditions given. It is because it returns when the first condition is satisfied. &lt;/p&gt;  &lt;p&gt;Therefore even if a port satisfies two or more the conditions it will take only the first one. Therefore Ordering is important in IIF and DECODE functions.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4.3 ERROR:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The ERROR function causes the Informatica Server to skip a record and throws an error message defined by the user. It is available in the Designer.&lt;/p&gt;  &lt;p&gt;ERROR( string )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following example shows how you can reference a mapping that calculates the average salary for employees in all departments of your company, but skips negative values. The following expression nests the ERROR function in an IIF expression so that if the Informatica Server finds a negative salary in the Salary port, it skips the row and displays an error:&lt;/p&gt;  &lt;p&gt;IIF( SALARY &amp;lt; 0, ERROR (&#39;Error. Negative salary found. Row skipped.&#39;, EMP_SALARY )&lt;/p&gt;  &lt;p&gt;SALARY RETURN VALUE&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGy28Wj2hGvnoQBde7fCQr-rsT9YrELVcu79mYVY93_Vj6RQlZA5lLKS6lpHIqwS4rcHyfN3h_mnm6GNpXhKjsnO31nYHceXVI2me2yXF7A3jfEEFqGRtEUvCT2zUc9lDoDBZKhcjse1ON/s1600-h/clip_image004%25255B11%25255D%25255B2%25255D.gif&quot;&gt;&lt;img title=&quot;clip_image004[11]&quot; style=&quot;border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px&quot; height=&quot;1&quot; alt=&quot;clip_image004[11]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7IGXpEVz15OrR5dKdMBzQLieWvLrV8w5Ma4Qc3hTTJsbY753AQ12gMPs3aS-J08vENv4sVyHLPsJSopD8LJm-i_GTaBJ1RL9e2vOwjmCmUZsAU5c65OwRCWYS2p7soEn4OE0cXMySJTtA/?imgmax=800&quot; width=&quot;240&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;10000 10000&lt;/p&gt;  &lt;p&gt;-15000 &#39;Error. Negative salary found. Row skipped.&#39;&lt;/p&gt;  &lt;p&gt;The below example combines two special functions, a test Function and a conversion function.&lt;/p&gt;  &lt;p&gt;IIF(IS_DATE(DATE_PROMISED,&#39;MM/DD/YY&#39;),TO_DATE(DATE_PROMISED),ERROR(&#39;Invalid &lt;/p&gt;  &lt;p&gt;Date&#39;))&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4.4 LOOKUP:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The LOOKUP function searches for a particular value in a lookup source column. It is available in the Designer.&lt;/p&gt;  &lt;p&gt;LOOKUP( result, search1, value1 [, search2, value2]… )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression searches the lookup source :TD.SALES for a specific item ID and price, and returns the item name if both searches find a match:&lt;/p&gt;  &lt;p&gt;LOOKUP( :TD.SALES.ITEM_NAME, :TD.SALES.ITEM_ID, 10, :TD.SALES.PRICE, 15.99 )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Regulator&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5&lt;/b&gt; &lt;b&gt;&lt;u&gt;Test Functions:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5.1 ISNULL&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_ID&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;5&lt;/p&gt;  &lt;p&gt;10&lt;/p&gt;  &lt;p&gt;&lt;u&gt;PRICE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;100.00&lt;/p&gt;  &lt;p&gt;15.99&lt;/p&gt;  &lt;p&gt;The ISNULL function returns whether a value is NULL. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;ISNULL( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following example checks for null values in the items table:&lt;/p&gt;  &lt;p&gt;ISNULL ISNULL ( ITEM_NAME )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&#39;&#39;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5.2 IS_DATE &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;0 (FALSE)&lt;/p&gt;  &lt;p&gt;1 (TRUE)&lt;/p&gt;  &lt;p&gt;0 (FALSE) Empty string is not NULL &lt;/p&gt;  &lt;p&gt;The IS_DATE function returns whether a value is a valid date. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;IS_DATE( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression checks the INVOICE_DATE port for valid dates:&lt;/p&gt;  &lt;p&gt;IS_DATE( INVOICE_DATE )&lt;/p&gt;  &lt;p&gt;This expression returns data similar to the following:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;INVOICE_DATE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;180&lt;/p&gt;  &lt;p&gt;&#39;04/01/98&#39;&lt;/p&gt;  &lt;p&gt;&#39;04/01/1998 00:12:15&#39;&lt;/p&gt;  &lt;p&gt;&#39;02/31/1998 12:13:55&#39;&lt;/p&gt;  &lt;p&gt;&#39;John Smith&#39;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;0 (FALSE)&lt;/p&gt;  &lt;p&gt;0 (FALSE)&lt;/p&gt;  &lt;p&gt;1 (TRUE)&lt;/p&gt;  &lt;p&gt;0 (FALSE) (February does not have 31 days)&lt;/p&gt;  &lt;p&gt;0 (FALSE)&lt;/p&gt;  &lt;p&gt;This function can also be used to validate a date for a specified format for which the &lt;/p&gt;  &lt;p&gt;syntax is&lt;/p&gt;  &lt;p&gt;IS_DATE( value, format )&lt;/p&gt;  &lt;p&gt;If the format is not specified, ‘MM/DD/YYYY’ is taken as the default format.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5.3 IS_NUMBER&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The IS_NUMBER returns whether a string is a valid number. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;IS_NUMBER( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression checks the ITEM_PRICE port for valid numbers:&lt;/p&gt;  &lt;p&gt;IS_NUMBER( ITEM_PRICE )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_PRICE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;123.00&lt;/p&gt;  &lt;p&gt;-3.45e+3&lt;/p&gt;  &lt;p&gt;&#39;&#39;&lt;/p&gt;  &lt;p&gt;+123abc&lt;/p&gt;  &lt;p&gt;ABC&lt;/p&gt;  &lt;p&gt;-ABC&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1 (True)&lt;/p&gt;  &lt;p&gt;1 (True)&lt;/p&gt;  &lt;p&gt;0 (False) Empty string&lt;/p&gt;  &lt;p&gt;0 (False)&lt;/p&gt;  &lt;p&gt;0 (False)&lt;/p&gt;  &lt;p&gt;0 (False)&lt;/p&gt;  &lt;p&gt;NULL&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5.4 IS_SPACES &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The IS_SPACES function returns whether a value consists entirely of spaces. It is available in the Designer and the Workflow Manager.&lt;/p&gt;  &lt;p&gt;IS_SPACES( value )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example :&lt;/strong&gt; The following expression checks the ITEM_NAME port for rows that consist entirely of spaces:&lt;/p&gt;  &lt;p&gt;IS_SPACES IS_SPACES ( ITEM_NAME )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;ITEM_NAME&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Flashlight&lt;/p&gt;  &lt;p&gt;Regulator &lt;/p&gt;  &lt;p&gt;system&lt;/p&gt;  &lt;p&gt;&lt;u&gt;RETURN VALUE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;0 (False)&lt;/p&gt;  &lt;p&gt;1 (True)&lt;/p&gt;  &lt;p&gt;0 (False)&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/07/functions-in-informatica.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfihrSKqwrbiql-_2OSpBd-c_Lr40T10uni-3wAChyphenhyphen-BAezkq4i7CT3WVoiS3A1rT6ywxqHDwIVL2nbE5x2AnVPEue3s9qCMlpUJv8SXSB1j7ZFBIq8IHKQAkx9tZCVga2xCkx8pbP6Kp4/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-3145935127291019753</guid><pubDate>Tue, 07 Jun 2011 12:58:00 +0000</pubDate><atom:updated>2011-06-07T18:28:31.478+05:30</atom:updated><title>Wishing Thanks to My Readers.</title><description>&lt;p&gt;&lt;em&gt;Hi reader’s,&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;I’m very much happy to see that lot of people from across the globe visited my blog and visitor’s count has crossed 3000 + with in 40 days of starting the blog. I would request my readers to start posting your valuable comments and requests so that I can make the blog more informative &amp;amp;&amp;#160; interactive . For viewers information who visit my Informatica blog, to visit my SQL or Data warehousing blogs too as I spent a lot of time posting the information, which is very useful for the job seekers or Data warehousing professionals in your day today activities at work or can also be used as the quick reference guide before taking up any interview.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;I’m planning to publish a book on informatica soon which will cover all major concepts of the data warehousing in detail, including the SQL concepts used by an ETL consultants, Basic Unix Commands and Introduction to the Scheduler tools like Autosys, Tivoli and off course Informatica with simple examples.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;I would highly appreciate if few people come forward and post the interview questions or the scenarios which they have encountered in there day to day work for discussion at the discussion board.&lt;/em&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/06/wishing-thanks-to-my-readers_07.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-8736940902904318665</guid><pubDate>Tue, 07 Jun 2011 12:36:00 +0000</pubDate><atom:updated>2011-06-07T18:06:58.116+05:30</atom:updated><title>Wishing Thanks to My Readers.</title><description>&lt;p&gt;Hi reader’s,&lt;/p&gt;  &lt;p&gt;I’m very much happy to see that lot of peoples from all part of globe have visited my blog and visitor’s count has crossed 3000 + with in 40 days of starting the blog. I would request my readers to start posting there valuable comments and requests so that we can make much more solicit &amp;amp; interactive blog. I had also noticed that the number of viewers who visiting my SQL or Data warehousing blog is pretty low as compared to informatica. I would also request my visitors to look in to them as I had spent a lot of time in making a content for it and which is very useful when your are at work or can also be used as the quick reference guide before taking up any interview. &lt;/p&gt;  &lt;p&gt;I’m planning to publish a book on informatica soon which will all major concepts of the data warehousing in detail and Sql concepts used by an ETL consultants, Basic Unix Commands and Introduction to the Scheduler tools like autosys, Tivoli and off course Informatica which has brought me all this fame.&lt;/p&gt;  &lt;p&gt;I would highly appreciate if few people come forward and post the interview questions or the scenarios which they have encountered in there day to day work for discussion at the discussion board.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/06/wishing-thanks-to-my-readers.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-8734182194813592497</guid><pubDate>Thu, 26 May 2011 05:21:00 +0000</pubDate><atom:updated>2011-05-26T10:51:41.834+05:30</atom:updated><title>Informatica Experienced Interview Questions- Part4</title><description>&lt;p&gt;&lt;b&gt;76.W&lt;/b&gt;hile importing the relational source definition from database, what are the meta data of source U import? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;77.D&lt;/b&gt;ifference between Power mart &amp;amp; Power Center? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;78&lt;/strong&gt;.&lt;b&gt;W&lt;/b&gt;hat kinds of sources and of targets can be used in Informatica? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;79.I&lt;/b&gt;f a sequence generator (with increment of 1) is connected to (say) 3 targets and each target uses the NEXTVAL port, what value will each target get? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;80.W&lt;/b&gt;hat do you mean by SQL override? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;81.W&lt;/b&gt;hat is a shortcut in Informatica? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;82.H&lt;/b&gt;ow does Informatica do variable initialization? Number/String/Date &lt;/p&gt;  &lt;p&gt;&lt;b&gt;83.H&lt;/b&gt;ow many different locks are available for repository objects&lt;/p&gt;  &lt;p&gt;&lt;b&gt;84.W&lt;/b&gt;hat are the transformations that use cache for performance? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;85.W&lt;/b&gt;hat is the use of Forward/Reject rows in Mapping? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;86.H&lt;/b&gt;ow many ways you can filter the records?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;87.H&lt;/b&gt;ow to delete duplicate records from source database/Flat Files? Can we use post sql to delete these records. In case of flat file, how can you delete duplicates before it starts loading? &lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;88.Y&lt;/b&gt;ou are required to perform “bulk loading” using Informatica on Oracle, what action would perform at Informatica + Oracle level for a successful load? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;89.W&lt;/b&gt;hat precautions do you need take when you use reusable Sequence generator transformation for concurrent sessions? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;90.Is &lt;/b&gt;it possible negative increment in Sequence Generator? If yes, how would you accomplish it? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;91.W&lt;/b&gt;hich directory Informatica looks for parameter file and what happens if it is missing when start the session? Does session stop after it starts? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;92.I&lt;/b&gt;nformatica is complaining about the server could not be reached? What steps would you take? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;93.Y&lt;/b&gt;ou have more five mappings use the same lookup. How can you manage the lookup? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;94.W&lt;/b&gt;hat will happen if you copy the mapping from one repository to another repository and if there is no identical source? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;95.H&lt;/b&gt;ow can you limit number of running sessions in a workflow? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;96.A&lt;/b&gt;n Aggregate transformation has 4 ports (l sum (col 1), group by col 2, col3), which port should be the output? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;97.W&lt;/b&gt;hat is a dynamic lookup and what is the significance of NewLookupRow? How will use them for rejecting duplicate records? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;98.I&lt;/b&gt;f you have more than one pipeline in your mapping how will change the order of load?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;99.W&lt;/b&gt;hen you export a workflow from Repository Manager, what does this xml contain? Workflow only? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;100. &lt;/b&gt;&lt;b&gt;Y&lt;/b&gt;our session failed and when you try to open a log file, it complains that the session details are not available. How would do trace the error? What log file would you seek for?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;101.Y&lt;/b&gt;ou want to attach a file as an email attachment from a particular directory using ‘email task’ in Informatica, How will you do it? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;102. &lt;/b&gt;&lt;b&gt;You &lt;/b&gt;have a requirement to alert you of any long running sessions in your workflow. How can you create a workflow that will send you email for sessions running more than 30 minutes. You can use any method, shell script, procedure or Informatica mapping or workflow control?&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-experienced-interview_26.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-3453843757045437023</guid><pubDate>Tue, 24 May 2011 08:01:00 +0000</pubDate><atom:updated>2011-05-24T13:39:40.081+05:30</atom:updated><title>Informatica Real time Scenarios.</title><description>&lt;p&gt;&lt;strong&gt;Scenario 1: How can we load first and last record from a flat file source to target?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Create two pipelines in a mapping&lt;/p&gt;  &lt;p&gt;1st pipeline would capture the first record, and 2nd one for last record.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1st Pipeline:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;src-&amp;gt; sq-&amp;gt; exp(take a variable port with numeric data type and pass through a output port &#39;O_Test&#39;)-&amp;gt;filter(pass if only&lt;/p&gt;  &lt;p&gt;O_Test =1)-&amp;gt;tgt&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2nd pipeline:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;src-&amp;gt;sq-&amp;gt;agg(No group it will pass only last entry)-&amp;gt;tgt&lt;/p&gt;  &lt;p&gt;In session for 2nd instance of target enable &#39;Append if Exists&#39; option&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier&quot;&gt;&lt;strong&gt;Scenario 2:&lt;/strong&gt; How to find out nth row in flat file...we used to do top N analysis &lt;/font&gt;&lt;font face=&quot;Courier&quot;&gt;by using&amp;#160; rownum &amp;amp; some other functionalities&amp;#160; by using rowid &lt;/font&gt;&lt;font face=&quot;Courier&quot;&gt;when source is table .&lt;/font&gt;&lt;font face=&quot;Courier&quot;&gt;and my query is how to achieve the &lt;/font&gt;&lt;font face=&quot;Courier&quot;&gt;same functionalities when my source is flat file? &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;b&gt; &lt;/b&gt;In the Mapping designer, go to Mappings-&amp;gt; Parameters and Variables.&lt;/p&gt;  &lt;p&gt;Here we have two things - Parameters(constant values passed to the mapping) and variables which are dynamic and can be stored as a metadata for future runs(for example you want to do an incremental load into a table B from table A. So you can define a variable which holds the seqid from source. Before you write the data into target , create an expression and source the seqid from source as input and create a variable Max_seqid as output. Now update this value for each row. when the session finishes informatica saves the last read seqid and you can use this in your source qualifier when you run the mapping next time. Please see Infa doc for setmaxvaribale and setminvariables.&lt;/p&gt;  &lt;p&gt;In this case, we have to just make use parameters to find the nth row.&lt;/p&gt;  &lt;p&gt;Create a parameter(type) - Last_row_number and select datatype as integer or double.&lt;/p&gt;  &lt;p&gt;Now you have to create a parameter file on unix box before you call the workflow.&lt;/p&gt;  &lt;p&gt;something like this&lt;/p&gt;  &lt;p&gt;echo &#39;[&amp;lt;FOLDERNAME&amp;gt;.WF﻿:&amp;lt;WorkflowName&amp;gt;.ST:&amp;lt;SessionName&amp;gt;]&#39;&lt;/p&gt;  &lt;p&gt;count=`wc -l filename`&lt;/p&gt;  &lt;p&gt;echo &amp;quot;\$\$MappingVariable=&amp;quot;$count&lt;/p&gt;  &lt;p&gt;Name the parameter file as &amp;lt;workflowname&amp;gt;.par and copy the complete path of the file name and update the &amp;quot;Parameter filename&amp;quot; field under Properties tab in workflow edit tasks.&lt;/p&gt;  &lt;p&gt;You can then use this variable in your mapping wherever you want. Just proceed it with two $$.&lt;/p&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&lt;strong&gt;Scenario 3:&lt;/strong&gt; How to create flat file dynamically?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SRC FILE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TRGT 1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Trgt 2&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;---------------- --------------------------------&amp;#160;&amp;#160;&amp;#160;&amp;#160; --------------------------------------&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Eid Name Sal&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Eid Name Sal&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Eid Name Sal &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;10 a 100&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 10 a 100&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 20 b 100&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;20 b 100&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 10 c 200&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 20 d 300 &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;10 c 200&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;20 d 300 &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution :&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;1. Sort the data coming from the source based on EID.&lt;/p&gt;  &lt;p&gt;2. Create a variable in an expression transformation that would track the change in EID e.g. in your case if the data is sorted based on EID then it would look like&lt;/p&gt;  &lt;p&gt;&lt;b&gt;EID&amp;#160;&amp;#160;&amp;#160;&amp;#160; Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SAL&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;10&amp;#160;&amp;#160;&amp;#160;&amp;#160; a&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 100&lt;/p&gt;  &lt;p&gt;10&amp;#160;&amp;#160;&amp;#160;&amp;#160; c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 200&lt;/p&gt;  &lt;p&gt;20&amp;#160;&amp;#160;&amp;#160;&amp;#160; b&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 100&lt;/p&gt;  &lt;p&gt;20&amp;#160;&amp;#160;&amp;#160;&amp;#160; d&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 300&lt;/p&gt;  &lt;p&gt;Whenever there is a change in EID the variable would track it&lt;/p&gt;  &lt;p&gt;variable1= IIF(EID = PREV_EID, 0, 1)&lt;/p&gt;  &lt;p&gt;3. Add a transaction control transformation in the map with a similar condition&lt;/p&gt;  &lt;p&gt;IIF(variable1 = 1, TC_COMMIT_BEFORE, TC_CONTINUE_TRANSACTION) &lt;/p&gt;  &lt;p&gt;this would create a new file whenever there is a change in the EID value.&lt;/p&gt;  &lt;p&gt;4. Add a &amp;quot;filename&amp;quot; port in the target and then pass on a value as per your requirement so that the filenames get generated dynamically as per your requirement.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Scenario 4: &lt;/strong&gt;I HAVE A SOURCE FILE CONTAINING &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1|A,1|B,1|C,1|D,2|A,2|B,3|A,3|B&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;AND IN TARGET I SHOULD GET LIKE&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1|A+B+C+D&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2|A+B&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3|A+B&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Follow the logic given below in the expression and you will get your output.&lt;/p&gt;  &lt;p&gt;Please ensure that all the ports you mentioned below are variable ports and the incoming data should be sorted by key,data&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;450&quot; border=&quot;2&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;&lt;strong&gt;VarPorts&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;&lt;strong&gt;Assigned&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;&lt;strong&gt;Row1&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;&lt;strong&gt;Row2&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;&lt;strong&gt;Row3&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;&lt;strong&gt;Row4&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;V_CURNT&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;KEY&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;2&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;V_CURNT_DATA&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;DATA&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;b&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;c&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;d&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;v_OUT&lt;/p&gt;            &lt;p&gt;(variable port)&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;IIF(isnull(v_PREV_DATA) or length(v_PREV_DATA)=5,v_CURNT_DATA,iif(V_CURNT = V_PREV, V_PREV_DATA||&#39;~&#39;||V_CURNT_DATA,NULL)&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a~b&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;a~b~c&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;d&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;o_OUT&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;v_OUT&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a~b&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;a~b~c&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;d&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;V_PREV&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;V_CURNT&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;null&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width=&quot;101&quot;&gt;           &lt;p&gt;V_PREV_DATA&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;266&quot;&gt;           &lt;p&gt;v_OUT&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;null&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;41&quot;&gt;           &lt;p&gt;a&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;a~b&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;a~b~c&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt; And After the expression transformation, you have to add an aggregator tx with group by port as &#39;key&#39;. this will return the last record with the key.&lt;/p&gt;  &lt;p&gt;Hi all the above scenario’s have been taken from informatica communities.Incase any one needs any info about the scenarios discussed then they may contact for clarifications.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-real-time-scenarios.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-5766370329449484055</guid><pubDate>Tue, 24 May 2011 06:07:00 +0000</pubDate><atom:updated>2011-05-24T11:37:41.210+05:30</atom:updated><title>Data warehousing Concepts Based Interview Questions</title><description>&lt;p&gt;&lt;strong&gt;1. W&lt;/strong&gt;hat is a data-warehouse?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. W&lt;/strong&gt;hat are Data Marts?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. W&lt;/strong&gt;hat is ER Diagram?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. W&lt;/strong&gt;hat is a Star Schema?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5. W&lt;/strong&gt;hat is Dimensional Modelling?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6. W&lt;/strong&gt;hat Snow Flake Schema?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7. W&lt;/strong&gt;hat are the Different methods of loading Dimension tables?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8. W&lt;/strong&gt;hat are Aggregate tables?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9. W&lt;/strong&gt;hat is the Difference between OLTP and OLAP?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10. W&lt;/strong&gt;hat is ETL?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;11. W&lt;/strong&gt;hat are the various ETL tools in the Market?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;12. W&lt;/strong&gt;hat are the various Reporting tools in the Market?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;13. W&lt;/strong&gt;hat is Fact table?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;14. W&lt;/strong&gt;hat is a dimension table?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;15. W&lt;/strong&gt;hat is a lookup table?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;16. W&lt;/strong&gt;hat is a general purpose scheduling tool? Name some of them?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;17. W&lt;/strong&gt;hat are modeling tools available in the Market? Name some of them?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;18. W&lt;/strong&gt;hat is real time data-warehousing?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;19. W&lt;/strong&gt;hat is data mining?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;20. W&lt;/strong&gt;hat is Normalization? First Normal Form, Second Normal Form , Third Normal Form?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;21. W&lt;/strong&gt;hat is ODS?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;22. W&lt;/strong&gt;hat type of Indexing mechanism do we need to use for a typical&lt;/p&gt;  &lt;p&gt;Data warehouse?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;23. W&lt;/strong&gt;hich columns go to the fact table and which columns go the dimension table? (My user needs to see &amp;lt;data element&amp;lt;data element broken by &amp;lt;data element&amp;lt;data element&amp;gt;&lt;/p&gt;  &lt;p&gt;All elements before broken = Fact Measures&lt;/p&gt;  &lt;p&gt;All elements after broken = Dimension Elements&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;24. W&lt;/strong&gt;hat is a level of Granularity of a fact table? What does this signify?(Weekly level summarization there is no need to have Invoice Number in the fact table anymore)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;25. H&lt;/strong&gt;ow are the Dimension tables designed? De-Normalized, Wide, Short, Use Surrogate Keys, Contain Additional date fields and flags.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;26. W&lt;/strong&gt;hat are slowly changing dimensions?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;27. W&lt;/strong&gt;hat are non-additive facts? (Inventory,Account balances in bank)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;28. W&lt;/strong&gt;hat are conformed dimensions?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;29. W&lt;/strong&gt;hat is VLDB? (Database is too large to back up in a time frame then it&#39;s a VLDB)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;30. W&lt;/strong&gt;hat are SCD1, SCD2 and SCD3?&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/data-warehousing-concepts-based.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-7809528251418375043</guid><pubDate>Mon, 23 May 2011 11:32:00 +0000</pubDate><atom:updated>2011-05-23T17:02:46.794+05:30</atom:updated><title>Informatica Experienced Interview Questions – part 3</title><description>&lt;p&gt;Hi readers. These are the questions which normally I would expect by interviewee to know when i sit in panel. So what i would request my reader’s to start posting your answers to this questions in the discussion forum under informatica technical interview guidance tag and i’ll review them and only valid answers will be kept and rest will be deleted.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;51.C&lt;/b&gt;an u copy the session in to a different folder or repository? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;52.W&lt;/b&gt;hat is tracing level and what are its types? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;53.W&lt;/b&gt;hat is a command that used to run a batch? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;54.W&lt;/b&gt;hat are the unsupported repository objects for a mapplet? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;55.I&lt;/b&gt;f your workflow is running slow, what is your approach towards performance tuning? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;56.W&lt;/b&gt;hat are the types of mapping wizards available in Informatica? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;57.A&lt;/b&gt;fter dragging the ports of three sources (Sql server, oracle, Informix) to a single source qualifier, can we map these three ports directly to target? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;58.W&lt;/b&gt;hy we use stored procedure transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;59.W&lt;/b&gt;hich object is required by the debugger to create a valid debug session? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;60.C&lt;/b&gt;an we use an active transformation after update strategy transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;61.E&lt;/b&gt;xplain how we set the update strategy transformation at the mapping level and at the session level? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;62.W&lt;/b&gt;hat is exact use of &#39;Online&#39; and &#39;Offline&#39; server connect Options while defining Work flow in Work flow monitor? The system hangs when &#39;Online&#39; Server connect option. The Informatica is installed on a Personal laptop. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;63.W&lt;/b&gt;hat is change data capture? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;64.W&lt;/b&gt;rite a session parameter file which will change the source and targets for every session. i.e different source and targets for each session run ? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;65.W&lt;/b&gt;hat are partition points? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;66.W&lt;/b&gt;hat are the different threads in DTM process? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;67.C&lt;/b&gt;an we do ranking on two ports? If yes explain how? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;68.W&lt;/b&gt;hat is Transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;69.W&lt;/b&gt;hat does stored procedure transformation do in special as compared to other transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;70.H&lt;/b&gt;ow do you recognize whether the newly added rows got inserted or updated? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;71.W&lt;/b&gt;hat is data cleansing? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;72.M&lt;/b&gt;y flat file’s size is 400 MB and I want to see the data inside the FF with out opening it? How do I do that? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;73.D&lt;/b&gt;ifference between Filter and Router? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;74.H&lt;/b&gt;ow do you handle the decimal places when you are importing the flat file?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;75.W&lt;/b&gt;hat is the difference between $ &amp;amp; $$ in mapping or parameter file? In which case they are generally used? &lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-experienced-interview_23.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-1742007458703358126</guid><pubDate>Fri, 20 May 2011 05:54:00 +0000</pubDate><atom:updated>2011-05-20T11:24:53.576+05:30</atom:updated><title>Informatica Experienced Interview Questions - Part2</title><description>&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Hi readers. These are the questions which normally I would expect by interviewee to know when i sit in panel. So what i would request my reader’s to start posting your answers to this questions in the discussion forum under informatica technical interview guidance tag and i’ll review them and only valid answers will be kept and rest will be deleted.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;26.W&lt;/b&gt;hat is Data driven? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;27.W&lt;/b&gt;hat is batch? Explain the types of the batches? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;28.W&lt;/b&gt;hat are the types of meta data repository stores? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;29.C&lt;/b&gt;an you use the mapping parameters or variables created in one mapping into another mapping? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;30.W&lt;/b&gt;hy did we use stored procedure in our ETL Application? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;31.W&lt;/b&gt;hen we can join tables at the Source qualifier itself, why do we go for joiner transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;32.W&lt;/b&gt;hat is the default join operation performed by the look up transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;33.W&lt;/b&gt;hat is hash table Informatica? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;34.I&lt;/b&gt;n a joiner transformation, you should specify the table with lesser rows as the master table. Why? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;35.D&lt;/b&gt;ifference between Cached lookup and Un-cached lookup? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;36.E&lt;/b&gt;xplain what DTM does when you start a work flow? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;37.E&lt;/b&gt;xplain what Load Manager does when you start a work flow? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;38.I&lt;/b&gt;n a Sequential batch how do i stop one particular session from running? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;39.W&lt;/b&gt;hat are the types of the aggregations available in Informatica? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;40.H&lt;/b&gt;ow do I create Indexes after the load process is done? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;41.H&lt;/b&gt;ow do we improve the performance of the aggregator transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;42.W&lt;/b&gt;hat are the different types of the caches available in Informatica? Explain in detail? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;43.W&lt;/b&gt;hat is polling? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;44.W&lt;/b&gt;hat are the limitations of the joiner transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;45.W&lt;/b&gt;hat is Mapplet? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;46.W&lt;/b&gt;hat are active and passive transformations? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;47.W&lt;/b&gt;hat are the options in the target session of update strategy transformation? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;48.W&lt;/b&gt;hat is a code page? Explain the types of the code pages? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;49.W&lt;/b&gt;hat do you mean rank cache? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;50.H&lt;/b&gt;ow can you delete duplicate rows with out using Dynamic Lookup? Tell me any other ways using lookup delete the duplicate rows? &lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-experienced-interview_20.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-343442396643820392</guid><pubDate>Thu, 19 May 2011 07:06:00 +0000</pubDate><atom:updated>2011-05-19T12:36:26.643+05:30</atom:updated><title>Informatica Interview based Scenarios.</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hi readers on daily basis i’ll be posting few scenarios discussed in IT toolbox here in my blog as most of my readers wrote to me regarding few interview based scenario’s i’m posting the same here. In case any one needs any help with these scenarios please feel free to &lt;a href=&quot;http://informaticatutorials-naveen.blogspot.com/2011/04/contact-us.html&quot;&gt;contact me&lt;/a&gt; .&lt;/p&gt;  &lt;p&gt;Skipped record count:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scenario 1:&lt;/b&gt; My source files as 5, 00,000 records. While fetching its skipping records due to data type and other issues. Finally it fetches only 1, 00,000 records. Through session properties we are considering 100000 as the source count.     &lt;br /&gt;But actually we are loosing 400000 records. How can I find the number or records that are skipped?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution:&lt;/b&gt; OPB_SESS_TASK_LOG there is a count for SRC_FAILED_ROWS&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scenario 2:&lt;/b&gt; Please provide different ways to achieve this..    &lt;br /&gt;How to normalize the following data: &lt;/p&gt;  &lt;p&gt;id date&lt;/p&gt;  &lt;p&gt;101 2/4/2008&lt;/p&gt;  &lt;p&gt;101 4/4/2008&lt;/p&gt;  &lt;p&gt;102 6/4/2008&lt;/p&gt;  &lt;p&gt;102 4/4/2008&lt;/p&gt;  &lt;p&gt;103 4/4/2008&lt;/p&gt;  &lt;p&gt;104 8/4/2008&lt;/p&gt;  &lt;p&gt;O/P - should have only one id with the min(date)&lt;/p&gt;  &lt;p&gt;How to create a mapping for this ?&lt;/p&gt;  &lt;p&gt;1 ---&amp;gt; Using Transformations&lt;/p&gt;  &lt;p&gt;2 ---&amp;gt; Using SQ Override method..&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution: &lt;/b&gt;You can use the rank transformation and select rank port for id and group by on date. In properties tab select bottom and number of ranks as &#39;1&#39; .&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scenario 3: &lt;/b&gt;My scenario is like I am loading records on a daily basis, target is not a truncate load suppose from source I am loading records like&lt;/p&gt;  &lt;p&gt;ID|Name&lt;/p&gt;  &lt;p&gt;101|Apple&lt;/p&gt;  &lt;p&gt;102|Orange&lt;/p&gt;  &lt;p&gt;102|Banana&lt;/p&gt;  &lt;p&gt;but in target I am already having target record(ID 102 of 10 records), scenario I need is like I have to delete only Empid 102 of yesterday record and load today record(2 records) &lt;/p&gt;  &lt;p&gt;How to achieve this in Informatica?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution:&lt;/b&gt; You can achieve your goal by taking the Look up on your target table and match on the basis of ID column. Then take an expression after your lookup and add a FLAG column. In that FLAG column check for the NULL value return from Look up. After expression take 2 filters and in one filter pass the records with NULL values and Insert those records into Target.&lt;/p&gt;  &lt;p&gt; If the Value is not NULL then you can take a UPDATE strategy and Update the old row with the new one.&lt;/p&gt;  &lt;h4&gt;Scenario 4: &lt;a href=&quot;https://community.informatica.com/message/55246#55246&quot;&gt;&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;a href=&quot;https://community.informatica.com/message/55246#55246&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Informatica Sequence Generator Scenarios&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;1) I have following set of records&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Id | Name&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;101 | ABC&lt;/p&gt;  &lt;p&gt;102 | DEF&lt;/p&gt;  &lt;p&gt;101 | AMERICA&lt;/p&gt;  &lt;p&gt;103 | AFRICA&lt;/p&gt;  &lt;p&gt;102 | JAPAN&lt;/p&gt;  &lt;p&gt;103 | CHINA&lt;/p&gt;  &lt;p&gt; I need to generate sequence and populate in Target in the following manner&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SID | ID | NAME&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1&amp;#160;&amp;#160; |101 | ABC&lt;/p&gt;  &lt;p&gt;2&amp;#160;&amp;#160; |101 | AMERICA&lt;/p&gt;  &lt;p&gt;1&amp;#160;&amp;#160; |102 | DEF&lt;/p&gt;  &lt;p&gt;2&amp;#160;&amp;#160; |102 | JAPAN&lt;/p&gt;  &lt;p&gt;1&amp;#160;&amp;#160; |103 | AFRICA&lt;/p&gt;  &lt;p&gt;2&amp;#160;&amp;#160; |103 | CHINA&lt;/p&gt;  &lt;p&gt;How to implement the same in Informatica?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1 sort on Id&lt;/p&gt;  &lt;p&gt;2 use expression t/f like below&lt;/p&gt;  &lt;p&gt;V_cur_id -&amp;gt; v_pre_id&lt;/p&gt;  &lt;p&gt;V_pre_id -&amp;gt; i_id -- i_id is input &lt;/p&gt;  &lt;p&gt;V_seq_id -&amp;gt; iif(v_cur_id = v_pre_id, v_seq_id+1, 1) --default 0&lt;/p&gt;  &lt;p&gt;O_seq_id -&amp;gt; v_seq_id.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scenario 5 : &lt;/b&gt;I have my input as below : ( Using Expression)&lt;/p&gt;  &lt;p&gt;10&lt;/p&gt;  &lt;p&gt;10&lt;/p&gt;  &lt;p&gt;10&lt;/p&gt;  &lt;p&gt;20&lt;/p&gt;  &lt;p&gt;20&lt;/p&gt;  &lt;p&gt;30&lt;/p&gt;  &lt;p&gt;&lt;b&gt;O/P : &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1&lt;/p&gt;  &lt;p&gt;2&lt;/p&gt;  &lt;p&gt;3&lt;/p&gt;  &lt;p&gt;1&lt;/p&gt;  &lt;p&gt;2&lt;/p&gt;  &lt;p&gt;1&lt;/p&gt;  &lt;p&gt;How do we obtain this using the Informatica?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution: &lt;/b&gt;first import source, then use a sorter transformation . sort it by ur column, then use a expression.&lt;/p&gt;  &lt;p&gt;in expression make this column .&lt;/p&gt;  &lt;p&gt;like this &lt;/p&gt;  &lt;p&gt;1.column_num(coming from sorter)&lt;/p&gt;  &lt;p&gt;2.current_num= check if column_num=previous_num,then add (first_value +1),else 1&lt;/p&gt;  &lt;p&gt;3.first_value=current_num.&lt;/p&gt;  &lt;p&gt;4.previous_num(new column)= column_num&lt;/p&gt;  &lt;p&gt;pass current_num to target.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-interview-based-scenarios.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-549433422576762742</guid><pubDate>Wed, 18 May 2011 07:01:00 +0000</pubDate><atom:updated>2011-05-18T12:31:56.950+05:30</atom:updated><title>Informatica Experienced Interview Questions – part 1</title><description>&lt;ol&gt;   &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between Informatica 7x and 8x?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between connected and unconnected lookup transformation in Informatica? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between stop and abort in Informatica?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between Static and Dynamic caches?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat is Persistent Lookup cache? What is its significance?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between and reusable transformation and mapplet?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow&lt;u&gt; &lt;/u&gt;the Informatica server sorts the string values in Rank transformation? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;I&lt;/b&gt;s sorter an active or passive transformation? When do we consider it to be active and passive?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;E&lt;/b&gt;xplain about Informatica server Architecture? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;I&lt;/b&gt;n update strategy Relational table or flat file which gives us more performance? Why? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat are the out put files that the Informatica server creates during running a session? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;C&lt;/b&gt;an you explain what are error tables in Informatica are and how we do error handling in Informatica?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between constraint base loading and target load plan? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between IIF and DECODE function? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow to import oracle sequence into Informatica? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat is parameter file? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;D&lt;/b&gt;ifference between Normal load and Bulk load? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow u will create header and footer in target using Informatica? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat are the session parameters? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;here does Informatica store rejected data? How do we view them? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat is difference between partitioning of relational target and file targets? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat are mapping parameters and variables in which situation we can use them? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat do you mean by direct loading and Indirect loading in session properties? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow do we implement recovery strategy while running concurrent batches? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;E&lt;/b&gt;xplain the versioning concept in Informatica? &lt;/li&gt; &lt;/ol&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-experienced-interview.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-7035590929883899495</guid><pubDate>Wed, 18 May 2011 06:57:00 +0000</pubDate><atom:updated>2011-05-18T12:29:51.364+05:30</atom:updated><title>Informatica Real time Interview Questions</title><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hi readers. These are the questions which normally i would expect by interviewee to know when i sit in panel. So what i would request my reader’s to start posting your answers to this questions in the discussion forum under informatica technical interview guidance tag and i’ll review them and only valid answers will be kept and rest will be deleted.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;b&gt;E&lt;/b&gt;xplain your Project? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat are your Daily routines? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow many mapping have you created all together in your project? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;I&lt;/b&gt;n which account does your Project Fall? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;W&lt;/b&gt;hat is your Reporting Hierarchy? &lt;/li&gt;    &lt;li&gt;&lt;b&gt;H&lt;/b&gt;ow many Complex Mapping’s have you created? Could you please me the situation for which you have developed that Complex mapping? &lt;/li&gt;    &lt;li&gt;What is your Involvement in Performance tuning of your Project? &lt;/li&gt;    &lt;li&gt;What is the Schema of your Project? And why did you opt for that particular schema? &lt;/li&gt;    &lt;li&gt;What are your Roles in this project? &lt;/li&gt;    &lt;li&gt;Can I have one situation which you have adopted by which performance has improved dramatically? &lt;/li&gt;    &lt;li&gt;Where you Involved in more than two projects simultaneously? &lt;/li&gt;    &lt;li&gt;Do you have any experience in the Production support? &lt;/li&gt;    &lt;li&gt;What kinds of Testing have you done on your Project (Unit or Integration or System or UAT)? And Enhancement’s were done after testing? &lt;/li&gt;    &lt;li&gt;How many Dimension Table are there in your Project and how are they linked to the fact table? &lt;/li&gt;    &lt;li&gt;How do we do the Fact Load? &lt;/li&gt;    &lt;li&gt;How did you implement CDC in your project? &lt;/li&gt;    &lt;li&gt;How does your Mapping in File to Load look like? &lt;/li&gt;    &lt;li&gt;How does your Mapping in Load to Stage look like? &lt;/li&gt;    &lt;li&gt;How does your Mapping in Stage to ODS look like? &lt;/li&gt;    &lt;li&gt;What is the size of your Data warehouse? &lt;/li&gt;    &lt;li&gt;What is your Daily feed size and weekly feed size? &lt;/li&gt;    &lt;li&gt;Which Approach (Top down or Bottom Up) was used in building your project? &lt;/li&gt;    &lt;li&gt;How do you access your source’s (are they Flat files or Relational)? &lt;/li&gt;    &lt;li&gt;Have you developed any Stored Procedure or triggers in this project? How did you use them and in which situation? &lt;/li&gt;    &lt;li&gt;Did your Project go live? What are the issues that you have faced while moving your project from the Test Environment to the Production Environment? &lt;/li&gt;    &lt;li&gt;What is the biggest Challenge that you encountered in this project? &lt;/li&gt;    &lt;li&gt;What is the scheduler tool you have used in this project? How did you schedule jobs using it? &lt;/li&gt; &lt;/ol&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/05/informatica-real-time-interview.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-1011007726190917123</guid><pubDate>Wed, 27 Apr 2011 18:08:00 +0000</pubDate><atom:updated>2011-05-11T19:31:25.716+05:30</atom:updated><title>Working with XML files</title><description>&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;BookMark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We have three types of the xml transformations and they are listed below:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;XML Source Qualifier Transformation:&lt;/b&gt; You can add an XML Source Qualifier transformation to a mapping by dragging an XML source definition to the Mapping Designer workspace or by manually creating one.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZhqNkb_Ybz8bG8hhLhJ5SfrwIPcq_RCndUMGzb9YQkYERLJ2DY53IkgdzJOsI4TcWbvzX4mhfZxiGz4o6NxYIvGZ4fUADvEvqr6w0KlJ4ayMu5DHfk2ifebzs3yKYPOhNVl4QlOYUYWJR/s1600-h/clip_image001%5B10%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBp04G9SbI2GHLL6wZab3CzBBRotF9xpgg9b0mYzzdl0ou-YiQpxQFhuBKXOhGzaLRBCSX9h3zu4BGgZYE6AowmffJ1-IHh5SqNOk4N4C0nQdY0s0HW-F0qJjgDMlUELrOFbjpT5XKruA/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; We can link one XML source definition to one XML Source Qualifier transformation.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzMyqq9YSiQo8m5L_uVYVJYemg_Ut3mTk_VfapyrP49n_KqN5riXMAYbZAc7aji4LG0dAy3e0sd_XA7p1FGCwAYkHBHGnmzJneDzkl8la3Zkcskjk_-hDQU0iXXx32Aco8jqyDewacwwMZ/s1600-h/clip_image001%5B1%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[1]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisd0piBQ6ITsL5hVuOp7XiOY95OXUznd9TMuQDjXvSivqUfmGvBByn1EtObwc3cqGj96DU5VL-iq9dW18Tq28Oo2IEjCcC8xI69mSLeeu6NTJLMkowKdBeO5UQwuAMblfpXPRFpYBPl03e/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; We cannot link ports from more than one group in an XML Source Qualifier transformation to ports in the same target transformation.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;XML Parser Transformation:&lt;/b&gt; The XML Parser transformation lets you extract XML data from messaging systems, such as TIBCO or MQ Series, and from other sources, such as files or databases.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzCsCFBp2MbxYgorEXaYdhDrLb5xWefUhWuTwCBKun5syp_DaQD-7lmHVUcKJw6A4W6yrQbAj1ts8Y56_dbwiIrFI4WgnYCxcZ1tqjFszINhFxWYhkSm1RvJdZ5Yd6W2GO3H3OSYbt8Z-v/s1600-h/clip_image001%5B2%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[2]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[2]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBKfk6boQPj1jZ6nvnpC0SkLY9NskfzHotW4GPKvJc4k00nEVZ0d_lxhw4rQl6kXe_sS7yfiHI6XrJOxUgI8uQGCUx2Oxmrf9hMjA09Ga0CoCDHpQyIJX8ddKc1ySUyEObJjWzb2uC96Hk/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; Used when we need to extract XML data from a TIBCO source and pass the data to relational targets.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-GWzNJtMxKDs2FpDQW2cOvRU7YlMNDvlEiLqURMHKZKh3ux9DKqD4o6MbZ3bKwBgSVPxsYxK_Xi_FwZu9UIlCJo79S8ZX-ES_qjG0SMy7jyzzjUZzrjM6JtJZponB4VWr7gPqxNCAzmJs/s1600-h/clip_image001%5B3%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[3]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[3]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9OT2ESOUyPqT7B4EpfjVL4xFh8lPQpz6e4HTmkUV5WPvpcdFHLlKfud_-P_Y_M3eSL4abQU10AUWQ_Sk8ZHR9-hey8RrFCJ4ckhRM9QFmTU1pB9OhtWDxE6Eu1Z2wXkbWDBq62y-eZQw9/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; The XML Parser transformation reads XML data from a single input port and writes data to one or more output ports.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;XML Generator Transformation: &lt;/b&gt;The XML Generator transformation lets you read data from messaging systems, such as TIBCO and MQ Series, or from other sources, such as files or databases.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD49oW-sB90fzzz7vKjuD293Im7PYD-LhVW7P7gP82_4WNgnpjFhRXfRpHDDkmY1LxqZAzphXm0xE1bQCXg0D37_2A_URAbLAw9qogqygHzUIRiEW5AJ22biO37Nk44Nns7x_Akt_A2u4j/s1600-h/clip_image001%5B4%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[4]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[4]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjklfJxiV3hSiw8BtLviHbZZzEr7X5e_dKb6yTgIhqMANnqLZwrXm1nrfC40uTOMJWrsjJc-0cFqe4iK0TgjZMQ1Wh9kuDWxVuqEoE-xriJ3PSMZi1KFq061f6EZX6orMhKvqYGer5U3OAO/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; Used when we need to extract data from relational sources and passes XML data to targets.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTuMaL_lbMqQdmZZjlHvetHAZH3RT-Yw-59xWKA5INKbupsv0ORwue0KxTYDKGQdxyMInjcRazSgLWMafoGg1xWWR0jOq6lvi9Me7NQhLdiVT-aKuZmlPVQQLCN9m40Fe5Xsm7bTpaqKoF/s1600-h/clip_image001%5B5%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[5]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[5]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAEcg5iSzhiu_OMww0i8MytPaNPvGZMKvT5pMppM6na_hxcQpwLSZizWffA9tx3bsOeTqVpdrKPFGW0MtBdYiQ9ZTMfuguGVMxIZeFbHd-7f4G45rPEwStDHgwM9q5o-KBKR9GPGNJ5YbM/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; The XML Generator transformation accepts data from multiple ports and writes XML through a single output port.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Stage 1 (Oracle to XML)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZJaSThFG7d-6G_H2VNSJAw8cweEtlm2AwWnFuMO0D_3hCSwte_AYCW3C5pD6spXTnPusFn0KAHHyulN-svUR3rGZtQL0SfpyU3dMbesxTtocYKjmhAWMKnGSxLDnFpHfft3II1KW3APsm/s1600-h/clip_image001%5B6%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[6]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[6]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw0XjbQzEkiKMPmahZZJ5XcBeqFtiXAfgAje2iWZ84n5p8d4OvVfjG8GtaeIsJJHoi0rYgxEcPsS_fGUh-wMgjFa3y07CQvuj-gJx3fJVGjUXLIK56L8RZVR8oe3OWq753K5yquQoVJv70/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; We are gonna generate an xml file as output with the oracle emp table as source.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1:&lt;/b&gt; Generate the XML target file.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Import the same emp table as source table &lt;/li&gt;    &lt;li&gt;Go the targets and click on import the XML definition. &lt;/li&gt;    &lt;li&gt;Later choose the Non XML source from the left hand pane. &lt;/li&gt;    &lt;li&gt;Move the emp table (source table) from all sources to the Selected Sources. &lt;/li&gt;    &lt;li&gt;After which, we got to click on open to have the target table in the target designer. &lt;/li&gt;    &lt;li&gt;Sequential Steps to generate the xml target table is shown in below snap shots. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVsqBNjcdWokTF3sRwdYS4LL9DvrSYgrtfIdcBJlMLEXiZmoFECF0s9zH0ILyOiLMv6c3Zft7JSjVwUX3CvgxzyrU_i7XIO9GtPUW2IDDnylOlpTgB07gJyAn-iKlVW-wTVsPSoePdfb91/s1600-h/clip_image003%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image003&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;119&quot; alt=&quot;clip_image003&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDI5xB8upC_ImGHfHFPtzLh9N2fOSNSNkCadZU8m75eFiDr5SNt5ebj_XEyWSyssYr92rXjQO0SFlSdYqSmn5jb_a8Nxtedx0Kn4y52dn6mR5kOZfZK0amlChQ0CrxICkPEMOMfG-Huut3/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig a: Importing the XML definition&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuhjV7xb6gbCv1hCjx47hL3s1W_XdwbOcY3YId-c4qQ0FgSZXlPaT-OjbNzl9zk0P3_e5xSDwjiYA1VOtd_FoK31fSGoAAttcTHs96jTo5eEkw1uSry5oqgiWeZT_yEMOx78PwXL_S4G5x/s1600-h/clip_image005%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image005&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;180&quot; alt=&quot;clip_image005&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxpf50cyT_chWyTDrHfR9zBWyKMy98A0DSEMwwYAey7eWeTET4oBsDJVn3uvRLzjC6UKe_a_lVwPTILhK-o1YobMfThJym8wPFGZMaMRa5v2TynxriTtf_AE_W-HEMSdDND-Hg6yIIXlVP/?imgmax=800&quot; width=&quot;194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig b: &lt;/b&gt;stage 1 for generating file just got to click on OK in this window.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3JmEqtwXzuPnanqJS4vCs9duY499qAosrMAqeGrgAkVcFkhoEp5MIhYBLUTykI-uzCw3R2bPuoqBKFjiXurVHruLFKDpd4n_Jqc5xbh9W7ARpIMZiC7T8ulTnE9O6jFq4Jd-f3N0DWhVz/s1600-h/clip_image007%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image007&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;199&quot; alt=&quot;clip_image007&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR_9moRWaCSP4k-kh3wqjiEg7cjoc47LhzR3A6TyNsZZrJlVn2op3cZmowtaZDHzuwgZ_wmnqonT6DwcvR8ht2lgEm3hcZRpk2LhdfabVJhyphenhyphenbfIbBz1_c01TpEPnIotdVDwg-vYJqAGAGR/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig c: &lt;/b&gt;Here specify the name for the target table and click next.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy7diNs4dbKdfE2Bv6TwAbgAKepAtuPMrX8zhrHEKGvn5cDbb-IGQEGRlBCMJFBh0sX2ID06rhzWEJBB98cqZVbIV-lQNCaHcODVrLIF7DQm4BNbkzw-7ZK5TasidrFtYOvnYOPLrGX0UH/s1600-h/clip_image009%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image009&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;207&quot; alt=&quot;clip_image009&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4-CmP1iac_sXxZdsFbPMZhG1UXMn2h59weg_q-tvs8320kD81yvd5LpRMDF-C7CLOReB4aUviAZ9hVAl3JcmgHhS05cwDheqQ2k3ANlK8h7iVVMCNudRcYbTWKZYAhr1PQEjPrACKg7I4/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig d: &lt;/b&gt;finally we got to click on Finish in this window.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2:&lt;/b&gt; Design the mapping, connect the SQ straight away to the target table.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhlRZaFwbQFmPQLIwG_bBvt36kSsyt_j-aw1j-jw45M8MspU6lBle-8fbBLbH5GOxV43CG7U6GKM5JMkHfeVzSPfjVWc4Jk3qTWzbsSJ-wSWlHuG09N_5hbeiihpYVQX3qmy9PsvhqRZS/s1600-h/clip_image011%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image011&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;100&quot; alt=&quot;clip_image011&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSAI3__fui0NZRC854ITmXekoXi-Apl_YQGlWSBEKZDPTvBeySvCGkWqKHyFwREogx7FG5ao9CVi-6BQAWVbIP2R36NeeFLvSVcMf0t8atAK6IeTSWGtPUVg06UX_75G0tNrDaps_ipP1_/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create the name of the mapping as per the naming convention. &lt;/li&gt;    &lt;li&gt;Save the changes. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Step 3: &lt;/b&gt;Create task and the work flow.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQhZLs8v29iT0ql4LcneSsFXkfdZFNO-pPYTNDERmTWi5deZYBig98ZH-rZtm1HAYp2_KXwHA9Gttrh6Mz2FW4RoUdmGXtw29u7vzGlTZK74wAFcQLvclIhOQaVs5MJpZl9IScSyF8EE9x/s1600-h/clip_image013%5B10%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image013&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;250&quot; alt=&quot;clip_image013&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-IWq9-U-wCe2-TXXMFMEluIfZ7QYA7ocv7sfTZPWrrS6NnGVuBQqr_IKkXCE9go4f8Kj9lt9G_DDr2OJ_rHSnUYg4XIcLkqLM6S-2AjDEiKguq2kcBuGjqC9IjAGdnz02XOKMC0gH0ey_/?imgmax=800&quot; width=&quot;299&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Double click on the work flow and go to the mapping tab and here we got to specify the output file directory. (C :/) …. &lt;/li&gt;    &lt;li&gt;Run the work flow ,check in the C drive and look for an file by name emp.xml … &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Stage 2 (XML to Oracle)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7-ysyiGEpSoQ4kwBXcm82EKzi49f4JXIjdfNlC9-5tsX_z3vwpUHhB4_UeeAsTUv4VKhMvqFVfK1pRj7qmqHZj_u6JfZTbNbRFf1pQwFK5lh-IfiqLMQkbX18myPnwsNe734M4iWrQwGn/s1600-h/clip_image001%5B7%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image001[7]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;15&quot; alt=&quot;clip_image001[7]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ToMBCljrt6GxgovGCU11Uosr3uKStdc1hUHXX_m1m6MRUpq2c9gaYUi2ce5upMuJciYn681Vqlg081vfgebrbytnkKpNXWIRJt0l-OoWxNdAycsnwaOQ9oIxBsYUONa4D-AamApiaKl2/?imgmax=800&quot; width=&quot;15&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; Here source is gonna be the xml file and the target file is the oracle file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1: &lt;/b&gt;Importing the source xml file and import the target transformation.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Go the sources and click on the import XML definition. &lt;/li&gt;    &lt;li&gt;Browse for the emp.xml file and open the same. &lt;/li&gt;    &lt;li&gt;The first three windows are gonna be same as in previous case. &lt;/li&gt;    &lt;li&gt;Target table is gonna be the same EMP table. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Step 2: &lt;/b&gt;Design the mapping.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Connections for this mapping is gonna be the following way. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc_EGm90OInBxywGVmFosI0RuUfUBL-_t4PcRXhzK6FtaqB3xysWTl6dtvfwyDzvgtmhcuF6BZRgMQQ24iMIxvZeBZantCEBkCzNCW2Hi7tMYJj4oiD2iWA0rUwqMNHTRbrzxu6giUVPqa/s1600-h/clip_image015%5B8%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image015&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;152&quot; alt=&quot;clip_image015&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLbBmE6-lHbuDJRbjJ9qpd-gNjpZ02Qv5vKXdadkZ6Jk5yNt9twmtA0NSeDAn5ejR9SEP3wrNnqSBu7b36pm1uR03xhRXOJt-sv8KwkROIPfgx2FHpsitpWQR6U9ULi0xyWVoMrl69IlJG/?imgmax=800&quot; width=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Save the mapping. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Step 3: &lt;/b&gt;Create the task and work flow.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create the task and the work flow using the naming conventions. &lt;/li&gt;    &lt;li&gt;Go to the mappings tab and click on the Source on the left hand pane to specify the path for the input file. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj15n3c3wTnk-wEtGaUdARucMFU0EJ-JTx6u4ZWCmKy1EW6kWXq7UYP1UU4BLA-KRT_b9TH39uelNrVPrRSHrPdvEAq7gMfdi3zVKdXAgTj5umLEx5k_Mtquy6e9mU9aXGTwrOjowTJyOQg/s1600-h/clip_image017%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image017&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;209&quot; alt=&quot;clip_image017&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRQkvWZDq4HjNkxV_v7iCkU6bbq4uhnSBOTrZyGkFcmi6sRHg6otjmq6okR9z6ezkylOQGsddgqN8k09fLog7FYoYjZY61rskshIz72zaQNuMia6tmev6rI6l6g5nuoLLNdZPh1nrbeboq/?imgmax=800&quot; width=&quot;283&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 4:&lt;/b&gt; Preview the output on the target table.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW9q4scor_l1C3IbhBylV3LiD8gbI8JDqeuCUlcmxG_HuWEPCrlx9dVSRPNZCtcJwkUk-wiL7OJxpmaGRztgKNFNyR8hciWZhkiuI-jpRqyYUegaAlhn3qhkoK2SPWz-NHLHhz9R-op7wc/s1600-h/clip_image019%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image019&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;180&quot; alt=&quot;clip_image019&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjqMhuHLzi2PtWQprhG1cKUf4qim1tNLACvR51QuBy2_dEHMPcCSiIXfmgE175FYa36DJQ1IrOYauqufB7E86hnSiOJo6OQ-PdjLRAcoAdfwEKxd7VVuo5-rZanxvqaJzqWR_tTCO7XgJf/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/working-with-xml-files.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBp04G9SbI2GHLL6wZab3CzBBRotF9xpgg9b0mYzzdl0ou-YiQpxQFhuBKXOhGzaLRBCSX9h3zu4BGgZYE6AowmffJ1-IHh5SqNOk4N4C0nQdY0s0HW-F0qJjgDMlUELrOFbjpT5XKruA/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-7436305822226384162</guid><pubDate>Tue, 26 Apr 2011 09:54:00 +0000</pubDate><atom:updated>2011-05-11T19:35:01.459+05:30</atom:updated><title>SCD Type 3</title><description>&lt;p&gt;&lt;b&gt;SCD –Type 3:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;This Method has limited history preservation, and we are goanna use skey as the Primary key here.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Source table: (01-01-2011)&lt;/b&gt;     &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;&lt;b&gt;Empno&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;&lt;b&gt;Ename&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;120&quot;&gt;           &lt;p&gt;&lt;b&gt;Sal&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;101&lt;/p&gt;            &lt;p&gt;102&lt;/p&gt;            &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;A&lt;/p&gt;            &lt;p&gt;B&lt;/p&gt;            &lt;p&gt;C&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;120&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;            &lt;p&gt;2000&lt;/p&gt;            &lt;p&gt;3000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Target Table: (01-01-2011)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;    &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;&lt;b&gt;Empno&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;&lt;b&gt;Ename&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;&lt;b&gt;C-sal&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;108&quot;&gt;           &lt;p&gt;&lt;b&gt;P-sal&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;&lt;b&gt;101&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;102&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;103&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;&lt;b&gt;A&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;B&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;C&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;&lt;b&gt;1000&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;2000&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;3000&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;108&quot;&gt;           &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Source Table: (01-02-2011)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;    &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;&lt;b&gt;Empno&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;120&quot;&gt;           &lt;p&gt;&lt;b&gt;Ename&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;144&quot;&gt;           &lt;p&gt;&lt;b&gt;Sal&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;&lt;b&gt;101&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;102&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;103&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;120&quot;&gt;           &lt;p&gt;&lt;b&gt;A&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;B&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;C&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;144&quot;&gt;           &lt;p&gt;&lt;b&gt;1000&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;4566&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;3000&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Target Table (01-02-2011):&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;    &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;Empno&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;108&quot;&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;Ename&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;C-sal&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;132&quot;&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;P-sal&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;101&lt;/p&gt;            &lt;p&gt;102&lt;/p&gt;            &lt;p&gt;103&lt;/p&gt;            &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;108&quot;&gt;           &lt;p&gt;A&lt;/p&gt;            &lt;p&gt;B&lt;/p&gt;            &lt;p&gt;C&lt;/p&gt;            &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;96&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;            &lt;p&gt;4566&lt;/p&gt;            &lt;p&gt;3000&lt;/p&gt;            &lt;p&gt;4544&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;132&quot;&gt;           &lt;p&gt;-&lt;/p&gt;            &lt;p&gt;Null&lt;/p&gt;            &lt;p&gt;-&lt;/p&gt;            &lt;p&gt;4566&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;So hope u got what I’m trying to do with the above tables:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1: &lt;/b&gt;Initially in the mapping designer I’m goanna create a mapping as below. And in this mapping I’m using lookup, expression, filter, update strategy to drive the purpose. Explanation of each and every Transformation is given below. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyEs7A6vBjcroBr5800VNMhZ0l5uBclKoHr1XOvQ1bOUBbE8plLWO-BOwdT9eqontg7gE_sZwY7x5ZUhQ6l84VKHFqQvqz_paeDYO9jSDOqzDE5oGGam4T2UHigs1pAskTxbBr9PdnxVnq/s1600-h/clip_image002%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;136&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxpyziTOnWLekXSjzfxbdi-Ifg5ULU2hapUzsLbFnjj9YJFPakMJxXbAMnwU3JcWLiXx4exSpSyMGQZ3PQNIGUJHBvWwP_EOhcNwpqKMrxvUAkNlzdQ7pDX1Fmm4VKRSxGGRlmxruTX5Qm/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2: &lt;/b&gt;here we are goanna see the purpose and usage of all the transformations that we have used in the above mapping.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Look up Transformation: &lt;/b&gt;The look Transformation looks the target table and compares the same with the source table. Based on the Look up condition it decides whether we need to update, insert, and delete the data from being loaded in to the target table.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;As usually we are goanna connect Empno column from the Source Qualifier and connect it to look up transformation. Prior to this Look up transformation has to look at the target table. &lt;/li&gt;    &lt;li&gt;Next to this we are goanna specify the look up condition empno =empno1. &lt;/li&gt;    &lt;li&gt;Finally specify that connection Information (Oracle) and look up policy on multiple mismatches (use last value) in the Properties tab. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Expression Transformation:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;We are using the Expression Transformation to separate out the Insert-stuff’s and Update- Stuff’s logically.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the ports from the Source Qualifier and Look up in to Expression. &lt;/li&gt;    &lt;li&gt;Add two Ports and Rename them as Insert, Update. &lt;/li&gt;    &lt;li&gt;These two ports are goanna be just output ports. Specify the below conditions in the Expression editor for the ports respectively. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Insert:&lt;/b&gt; isnull(ENO1 )&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; iif(not isnull(ENO1) and decode(SAL,Curr_Sal,1,0)=0,1,0)&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTEFsIKgEKU5jrWeI94oyc0LUpr99VfUG7RrdoR4Er1LSngl84waJk17KEn0S-mNOsaw0BB0TFgaZFxz1f15QcYAMaWQw_TnZhcD6qNwCUK_CjigO8yBps5Jb4X6Ybv5qmNxuYKeTzfCJz/s1600-h/clip_image004%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image004&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;131&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiueCkEesx9to7gwnmDxule6fqGVZGCbRDdAIpsj2MoXSJW_bzfX3xAvKSD_2zV7k3KA99_QLjSYa1rzzuJov21wizzcKrXhv9y-KKFapcpCedv01UirBIHHGbSi134i1OzgdcF45lszmds/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Filter Transformation: &lt;/b&gt;We are goanna use two filter Transformation to filter out the data physically in to two separate sections one for insert and the other for the update process to happen.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Filter 1: &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag the Insert and other three ports which came from source qualifier in to the Expression in to first filter. &lt;/li&gt;    &lt;li&gt;In the Properties tab specify the Filter condition as Insert. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6iOCx-M_pJsJmq0-daEWGsyAyxr1yQyGW1vth4q83NyDnuUv4uwYuLKrzQ9ELZ1pUIapFRoUZjqYbDffsB3RhSK5FZayOjHpdx-SNELNJcXQpGUOEP1I1rAg8zqP6RkrZkZ3sF4zpdN8k/s1600-h/clip_image006%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image006&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;68&quot; alt=&quot;clip_image006&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPD2wLWnKYjLLIb1cXcNEn6vkC7i7eTa9Gso-yyHId64JI_A75tK6RdswN4EgbSOef8wHRU-5XlASZZdvQCtrnRyp8_Tf77RBbimCuHlrh9zmrDTMdZhVOgTcIuFHbvOHSs9pTss0nK_2v/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Filter 2:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag the update and other four ports which came from Look up in to the Expression in to Second filter. &lt;/li&gt;    &lt;li&gt;In the Properties tab specify the Filter condition as update. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJV_TldI9zo4d5Gu3Xi5A06375kNdlluiO7jHsGVIBNLoX4usleRUVYMla61IWUb5e_2-OSluDW39zshPlQbRso2Pb3OYhn4iibJ3g5MNCBG53Fn4TFB9jpeOKtB_IrmM-qrOTfmF45yJx/s1600-h/clip_image008%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image008&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;70&quot; alt=&quot;clip_image008&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJYfgNcASkcs9JAOebny3V0AEwfW6JPQu5UrmnDYKBqVHgSnmsZ6OwiV3KsYJWdsnZ6imE685F-62YVUkdvWF7DsBJ8K89QP3joZ1xMUCYjPpt4d58rhnHIJGln6uDZk_5gmupBENJWvUK/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update Strategy: &lt;/b&gt;Finally we need the update strategy to insert or to update in to the target table.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update Strategy 1: T&lt;/b&gt;his is intended to insert in to the target table.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the ports except the insert from the first filter in to this.&lt;b&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;In the Properties tab specify the condition as the 0 or dd_insert.&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI6o261zYsuUWN9Tvvei5W5GzqApOf7Ngu9searKNJPLPogK-caZD26xc0g0-WiJkNW3Z2kEsl-B_1HDiTa90M-2cjAlO1IV_JB9uTTZakhp0UmosoiyYF0YusrY2A5goaOwmuLaurHElZ/s1600-h/clip_image010%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image010&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;75&quot; alt=&quot;clip_image010&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn0RU7cg5ihybLl7GT-4ll9VqL7k1iNKU8IzDol8CUtzpiEjVShOWt3pEdPKKPicjROE9PczjHe8B69cckD3WL1T229imWa9clQ75BRIN-ZK6cHdBXYBEoVjORnGpn5tQaOz26HDTG0fh0/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update Strategy 2: T&lt;/b&gt;his is intended to update in to the target table.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the ports except the update from the second filter in to this.&lt;b&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;In the Properties tab specify the condition as the 1 or dd_update.&lt;b&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_hdCnK2b9aQOaaXslL6zPEo0MGuCtmeXWCJhz6ed11vbudOxLRLv7Y305CkJGhdIdZ4hVVfxw31Z6isacYSUsKa-CCCPN1przyPVB1UeIvDF0GnU77QVE_vnf_7jAqYgoYbcq78j2LnFe/s1600-h/clip_image012%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image012&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;74&quot; alt=&quot;clip_image012&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMcMYR3bNXlMaJImjyR9tOro2Rk0-bl632EjwSCbBTGUYopWEo069fqm1li5WJrytwtAv-EQKxpjf6lN0dW_RuBFIPrcaUceR0nzQczpnmpbkjQn_VQMUTgGbenRn7TCDn43ES5iKJ1LuK/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Finally connect both the update strategy in to two instances of the target.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 3: &lt;/b&gt;Create a session for this mapping and Run the work flow.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 4: &lt;/b&gt;Observe the output it would same as the second target table&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCFsX72JJkTtTrnXuv1Up4B5NRDaSjlpkXYxM7iZi3lzLp5P8otaLcbp_CasIm2J3twy5FVPGmjS_65dFVtWv4eR6MHT3IMikTqqwYVPTDtk7EzMItKM_Z-ZOuNTJHA3ZyKVcCoo_H2aBD/s1600-h/clip_image014%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image014&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;123&quot; alt=&quot;clip_image014&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG2oqoiS2OFnbaF4sDPjD9EH94iLHOno2wYsM4NquhmZh9Efo4f9m97PBgPn7hE6dD0vghTd1qOM7bTmhSJu0PqF7pM0gssoW_0XR8k0y6yUIMWJ-vvcKgtGuPlp5c-ENnImhQPGkcZKlL/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/scd-type-3.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxpyziTOnWLekXSjzfxbdi-Ifg5ULU2hapUzsLbFnjj9YJFPakMJxXbAMnwU3JcWLiXx4exSpSyMGQZ3PQNIGUJHBvWwP_EOhcNwpqKMrxvUAkNlzdQ7pDX1Fmm4VKRSxGGRlmxruTX5Qm/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-4878396615110880393</guid><pubDate>Mon, 25 Apr 2011 10:06:00 +0000</pubDate><atom:updated>2011-05-11T19:36:08.419+05:30</atom:updated><title>Mapping Templates</title><description>&lt;p&gt;&lt;b&gt;Mapping Templates Overview :&lt;/b&gt;&lt;/p&gt; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;A mapping template is a drawing in Visio that represents a PowerCenter mapping. You can configure rules and parameters in a mapping template to specify the transformation logic.&lt;/p&gt;  &lt;p&gt;Use the Informatica Stencil and the Informatica toolbar in the Mapping Architect for Visio to create a mapping template. The Informatica Stencil contains shapes that represent mapping objects that you can use to create a mapping template. The Informatica toolbar contains buttons for the tasks you can perform on mapping template.&lt;/p&gt;  &lt;p&gt;You can create a mapping template manually, or you can create a mapping template by importing a Power Center mapping.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Creating a Mapping Template Manually:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You can use the Informatica Stencil and the Informatica toolbar to create a mapping template. Save and publish a mapping template to create the mapping template files.&lt;/p&gt;  &lt;p&gt;To create a mapping template manually, complete the following steps:&lt;/p&gt;  &lt;p&gt;1. &lt;b&gt;Start Mapping Architect for Visio&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;2. &lt;b&gt;Verify that the Informatica Stencil and Informatica toolbar are available&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;3. &lt;b&gt;Drag the mapping objects from the Informatica Stencil to the drawing window:- &lt;/b&gt;Use the mapping objects to create visual representation of the mapping.&lt;/p&gt;  &lt;p&gt;4. &lt;b&gt;Create links:- &lt;/b&gt;Create links to connect mapping objects.&lt;/p&gt;  &lt;p&gt;5. &lt;b&gt;Configure link rules:- &lt;/b&gt;Configure rules for each link in the mapping template to indicate how data moves from one mapping object to another. Use parameters to make the rules flexible.&lt;/p&gt;  &lt;p&gt;6. &lt;b&gt;Configure the mapping objects:- &lt;/b&gt;Add a group or expression required by the transformations in the mapping template. To create multiple mappings, set a parameter for the source or target definition.&lt;/p&gt;  &lt;p&gt;7. &lt;b&gt;Declare mapping parameters and variables to use when you run sessions in Power Center:- &lt;/b&gt;After you import the mappings created from the mapping template into Power Center, you can use the mapping parameters and variables in the session or workflow.&lt;/p&gt;  &lt;p&gt;8. &lt;b&gt;Validate the mapping template.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;9. &lt;b&gt;Save the mapping template:- &lt;/b&gt;Save changes to the mapping template drawing file.&lt;/p&gt;  &lt;p&gt;10. &lt;b&gt;Publish the mapping template:- &lt;/b&gt;When you publish the mapping template, Mapping Architect for Visio generates a mapping template XML file and a mapping template parameter file (param.xml).If you edit the mapping template drawing file after you publish it, you need to publish again. Do not edit the mapping template XML file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Importing a Mapping Template from a Power Center:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;If you have a Power Center mapping that you want to use as a basis for a mapping template, export the mapping to a mapping XML file and then use the mapping XML file to create a mapping template.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;Export the mapping XML file within the current Power Center release. Informatica does not support imported objects from a different release.&lt;/p&gt;  &lt;p&gt;To import a mapping template from a Power Center mapping, complete the following &lt;b&gt;steps:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1. &lt;b&gt;Export a Power Center mapping. &lt;/b&gt;In the Designer, select the mapping that you want to base the mapping template on and export it to an XML file.&lt;/p&gt;  &lt;p&gt;2. &lt;b&gt;Start Mapping Architect for Visio.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;3. &lt;b&gt;Verify that the Informatica stencil and Informatica toolbar are available&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;4. &lt;b&gt;Import the mapping. &lt;/b&gt;On the Informatica toolbar, click the Create Template from Mapping XML button. Mapping Architect for Visio determines the mapping objects and links included in the mapping and adds the appropriate objects to the drawing window.&lt;/p&gt;  &lt;p&gt;5. &lt;b&gt;Verify links. &lt;/b&gt;Create or verify links that connect mapping objects.&lt;/p&gt;  &lt;p&gt;6. &lt;b&gt;Configure link rules. &lt;/b&gt;Configure rules for each link in the mapping template to indicate how data moves from one mapping object to another. Use parameters to make the rules flexible.&lt;/p&gt;  &lt;p&gt;7. &lt;b&gt;Configure the mapping objects. &lt;/b&gt;Add a group or expression required by the transformations in the mapping template. To create multiple mappings, set a parameter for the source or target definition.&lt;/p&gt;  &lt;p&gt;8. &lt;b&gt;Declare mapping parameters and variables to use when you run the session in Power Center. &lt;/b&gt;After you import the mappings created from the mapping template into Power Center, you can use the mapping parameters and variables in the session or workflow.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;If the Power Center mapping contains mapping parameters and variables, it is possible that the mapping parameters and variables ($$&lt;i&gt;ParameterName&lt;/i&gt;) may not work for all mappings you plan to create from the mapping template. Modify or declare new mapping parameters and variables appropriate for running the new mappings created from the mapping template.&lt;/p&gt;  &lt;p&gt;9. &lt;b&gt;Validate the mapping template.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;10. &lt;b&gt;Save the mapping template. &lt;/b&gt;Save changes to the mapping template drawing file.&lt;/p&gt;  &lt;p&gt;11. &lt;b&gt;Publish the mapping template. &lt;/b&gt;When you publish the mapping template, Mapping Architect for Visio generates a mapping template XML file and a mapping template parameter file (param.xml).&lt;/p&gt;  &lt;p&gt;If you make any change to the mapping template after publishing, you need to publish the mapping template again. Do not edit the mapping template XML file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;Mapping Architect for Visio fails to create a mapping template if you import a mapping that includes an unsupported source type, target type, or mapping object.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/mapping-templates.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-9146867460296704207</guid><pubDate>Mon, 25 Apr 2011 07:23:00 +0000</pubDate><atom:updated>2011-05-11T19:37:13.193+05:30</atom:updated><title>Grid Processing</title><description>&lt;p&gt;&lt;b&gt;Grid Processing Overview&lt;/b&gt;:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;     &lt;br /&gt;When a Power Center domain contains multiple nodes, you can configure workflows and sessions to run on a grid. When you run a workflow on a grid, the Integration Service runs a service process on each available node of the grid to increase performance and scalability. When you run a session on a grid, the Integration Service distributes session threads to multiple DTM processes on nodes in the grid to increase performance and scalability.     &lt;br /&gt;You create the grid and configure the Integration Service in the Administration Console. To run a workflow on a grid, you configure the workflow to run on the Integration Service associated with the grid. To run a session on a grid, configure the session to run on the grid.&lt;/p&gt;  &lt;p&gt;The Integration Service distributes workflow tasks and session threads based on how you configure the workflow or session to run:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Running workflows on a grid. The Integration Service distributes workflows across the nodes in a grid. It also distributes the Session, Command, and predefined Event-Wait tasks within workflows across the nodes in a grid. &lt;/li&gt;    &lt;li&gt;Running sessions on a grid. The Integration Service distributes session threads across nodes in a grid. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; To run workflows on a grid, you must have the Server grid option. To run sessions on a grid, you must have the Session on Grid option.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Running Workflows on a Grid:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When you run a workflow on a grid, the master service process runs the workflow and all tasks except Session, Command, and predefined Event-Wait tasks, which it may distribute to other nodes. The master service process is the Integration Service process that runs the workflow, monitors service processes running on other nodes, and runs the Load Balancer. The Scheduler runs on the master service process node, so it uses the date and time for the master service process node to start scheduled workflows.&lt;/p&gt;  &lt;p&gt;The Load Balancer is the component of the Integration Service that dispatches Session, Command, and predefined Event-Wait tasks to the nodes in the grid. The Load Balancer distributes tasks based on node availability. If the Integration Service is configured to check resources, the Load Balancer also distributes tasks based on resource availability.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;For example,&lt;/b&gt; a workflow contains a Session task, a Decision task, and a Command task. You specify a resource requirement for the Session task. The grid contains four nodes, and Node 4 is unavailable. The master service process runs the Start and Decision tasks. The Load Balancer distributes the Session and Command tasks to&lt;/p&gt;  &lt;p&gt;nodes on the grid based on resource availability and node availability.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Running Sessions on a Grid:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When you run a session on a grid, the master service process runs the workflow and all tasks except Session, Command, and predefined Event-Wait tasks as it does when you run a workflow on a grid. The Scheduler runs on the master service process node, so it uses the date and time for the master service process node to start scheduled workflows. In addition, the Load Balancer distributes session threads to DTM processes running on different nodes.&lt;/p&gt;  &lt;p&gt;When you run a session on a grid, the Load Balancer distributes session threads based on the following factors:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;b&gt;Node availability :-&lt;/b&gt; The Load Balancer verifies which nodes are currently running, enabled, and available for task dispatch. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Resource availability :-&lt;/b&gt; If the Integration Service is configured to check resources, it identifies nodes that have resources required by mapping objects in the session. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Partitioning configuration. &lt;/b&gt;The Load Balancer dispatches groups of session threads to separate nodes based on the partitioning configuration. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You might want to configure a session to run on a grid when the workflow contains a session that takes a long time to run.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Grid Connectivity and Recovery&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When you run a workflow or session on a grid, service processes and DTM processes run on different nodes. Network failures can cause connectivity loss between processes running on separate nodes. Services may shut down unexpectedly, or you may disable the Integration Service or service processes while a workflow or session is running. The Integration Service failover and recovery behavior in these situations depends on the service process that is disabled, shuts down, or loses connectivity. Recovery behavior also depends on the following factors:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;High availability option&lt;/b&gt;:-When you have high availability, workflows fail over to another node if the node or service shuts down. If you do not have high availability, you can manually restart a workflow on another node to recover it. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Recovery strategy&lt;/b&gt;:- You can configure a workflow to suspend on error. You configure a recovery strategy for tasks within the workflow. When a workflow suspends, the recovery behavior depends on the recovery strategy you configure for each task in the workflow. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Shutdown mode&lt;/b&gt;:- When you disable an Integration Service or service process, you can specify that the service completes, aborts, or stops processes running on the service. Behavior differs when you disable the Integration Service or you disable a service process. Behavior also differs when you disable a master service process or a worker service process. The Integration Service or service process may also shut down unexpectedly. In this case, the failover and recovery behavior depend on which service process shuts down and the configured recovery strategy. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Running mode&lt;/b&gt;:-If the workflow runs on a grid, the Integration Service can recover workflows and tasks on another node. If a session runs on a grid, you cannot configure a resume recovery strategy. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Operating mode:- &lt;/b&gt;If the Integration Service runs in safe mode, recovery is disabled for sessions and workflows. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;You cannot configure an Integration Service to fail over in safe mode if it runs on a grid.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/grid-processing.html</link><author>noreply@blogger.com (Naveen)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-5939702204212174098</guid><pubDate>Mon, 25 Apr 2011 07:11:00 +0000</pubDate><atom:updated>2011-05-11T19:38:18.588+05:30</atom:updated><title>Workflow Variables</title><description>&lt;p&gt;&lt;b&gt;Workflow Variables Overview:&lt;/b&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;You can create and use variables in a workflow to reference values and record information. For example, use a Variable in a Decision task to determine whether the previous task ran properly. If it did, you can run the next task.&lt;/p&gt;  &lt;p&gt;If not, you can stop the workflow. Use the following types of workflow variables:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;b&gt;Predefined workflow variables. &lt;/b&gt;The Workflow Manager provides predefined workflow variables for tasks within a workflow. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;User-defined workflow variables. &lt;/b&gt;You create user-defined workflow variables when you create a workflow. Use workflow variables when you configure the following types of tasks: &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Assignment tasks. &lt;/b&gt;Use an Assignment task to assign a value to a user-defined workflow variable. For Example, you can increment a user-defined counter variable by setting the variable to its current value plus 1. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Decision tasks. &lt;/b&gt;Decision tasks determine how the Integration Service runs a workflow. For example, use the Status variable to run a second session only if the first session completes successfully. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Links. &lt;/b&gt;Links connect each workflow task. Use workflow variables in links to create branches in the workflow. For example, after a Decision task, you can create one link to follow when the decision condition evaluates to true, and another link to follow when the decision condition evaluates to false. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Timer tasks. &lt;/b&gt;Timer tasks specify when the Integration Service begins to run the next task in the workflow. Use a user-defined date/time variable to specify the time the Integration Service starts to run the next task. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Use the following keywords to write expressions for user-defined and predefined workflow variables:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;AND &lt;/li&gt;    &lt;li&gt;OR &lt;/li&gt;    &lt;li&gt;NOT &lt;/li&gt;    &lt;li&gt;TRUE &lt;/li&gt;    &lt;li&gt;FALSE &lt;/li&gt;    &lt;li&gt;NULL &lt;/li&gt;    &lt;li&gt;SYSDATE &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Predefined Workflow Variables:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Each workflow contains a set of predefined variables that you use to evaluate workflow and task conditions. Use the following types of predefined variables:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Task-specific variables. &lt;/b&gt;The Workflow Manager provides a set of task-specific variables for each task in the workflow. Use task-specific variables in a link condition to control the path the Integration Service takes when running the workflow. The Workflow Manager lists task-specific variables under the task name in the Expression Editor. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Built-in variables. &lt;/b&gt;Use built-in variables in a workflow to return run-time or system information such as folder name, Integration Service Name, system date, or workflow start time. The Workflow Manager lists built-in variables under the Built-in node in the Expression Editor. &lt;/li&gt; &lt;/ul&gt;  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;478&quot; border=&quot;2&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;94&quot;&gt;         &lt;p&gt;&lt;strong&gt;Task-Specific              &lt;br /&gt;Variables&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;180&quot;&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;81&quot;&gt;&lt;strong&gt;Task Types&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;&lt;strong&gt;Data type&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;93&quot;&gt;Condition&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;184&quot;&gt;         &lt;p&gt;Evaluation result of decision condition expression.            &lt;br /&gt;If the task fails, the Workflow Manager keeps the condition set to null.&lt;/p&gt;          &lt;p&gt;           &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$Dec_TaskStatus.Condition = &amp;lt;TRUE | FALSE | NULL | any integer&amp;gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Decision&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;118&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;93&quot;&gt;End Time&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;186&quot;&gt;         &lt;p&gt;Date and time the associated task ended. Precision is to the second.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_item_summary.EndTime &amp;gt; TO_DATE(&#39;11/10/2004             &lt;br /&gt;08:13:25&#39;)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All tasks&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;117&quot;&gt;Date/Time&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;ErrorCode&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;188&quot;&gt;         &lt;p&gt;Last error code for the associated task. If there is no error, the Integration Service sets ErrorCode to 0 when the task completes.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_item_summary.ErrorCode = 24013.             &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; You might use this variable when a task consistently fails with this final error message.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All tasks&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;ErrorMsg&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Last error message for the associated task.If there is no error, the Integration Service sets ErrorMsg to an empty string when the task completes.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_item_summary.ErrorMsg = &#39;PETL_24013 Session run             &lt;br /&gt;completed with failure             &lt;br /&gt;Variables of type Nstring can have a maximum length of 600 characters.             &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; You might use this variable when a task consistently fails             &lt;br /&gt;with this final error message.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All tasks&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Nstring&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;First Error Code&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Error code for the first error message in the session.            &lt;br /&gt;If there is no error, the Integration Service sets FirstErrorCode to 0             &lt;br /&gt;when the session completes.             &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$s_item_summary.FirstErrorCode = 7086&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;FirstErrorMsg&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;First error message in the session.If there is no error, the Integration Service sets FirstErrorMsg to an empty string when the task completes.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_item_summary.FirstErrorMsg = &#39;TE_7086 Tscrubber:             &lt;br /&gt;Debug info… Failed to evalWrapUp&#39;Variables of type Nstring can have a maximum length of 600 characters.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Nstring&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;PrevTaskStatus&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Status of the previous task in the workflow that the Integration Service ran. Statuses include:            &lt;br /&gt;1.ABORTED             &lt;br /&gt;2.FAILED             &lt;br /&gt;3.STOPPED             &lt;br /&gt;4.SUCCEEDED             &lt;br /&gt;Use these key words when writing expressions to evaluate the status of the previous task.             &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$Dec_TaskStatus.PrevTaskStatus = FAILED&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All Tasks&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;SrcFailedRows&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Total number of rows the Integration Service failed to read from the source.            &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$s_dist_loc.SrcFailedRows = 0&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;SrcSuccessRows&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Total number of rows successfully read from the sources.            &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$s_dist_loc.SrcSuccessRows &amp;gt; 2500&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;StartTime&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Date and time the associated task started. Precision is to the second.            &lt;br /&gt;&lt;strong&gt;Sample syntax:              &lt;br /&gt;&lt;/strong&gt;$s_item_summary.StartTime &amp;gt; TO_DATE(&#39;11/10/2004             &lt;br /&gt;08:13:25&#39;)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All Task&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Date/Time&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;Status&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Status of the previous task in the workflow. Statuses include:            &lt;br /&gt;- ABORTED             &lt;br /&gt;- DISABLED             &lt;br /&gt;- FAILED             &lt;br /&gt;- NOTSTARTED             &lt;br /&gt;- STARTED             &lt;br /&gt;- STOPPED             &lt;br /&gt;- SUCCEEDED             &lt;br /&gt;Use these key words when writing expressions to evaluate the status of the current task.             &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_dist_loc.Status = SUCCEEDED&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;All Task&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;TgtFailedRows&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Total number of rows the Integration Service failed to write to the target.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_dist_loc.TgtFailedRows = 0&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;TgtSuccessRows&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;         &lt;p&gt;Total number of rows successfully written to the target.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_dist_loc.TgtSuccessRows &amp;gt; 0&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;116&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;92&quot;&gt;TotalTransErrors&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;190&quot;&gt;         &lt;p&gt;Total number of transformation errors.            &lt;br /&gt;&lt;strong&gt;Sample syntax:&lt;/strong&gt;             &lt;br /&gt;$s_dist_loc.TotalTransErrors = 5&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;80&quot;&gt;Session&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;123&quot;&gt;Integer&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;User-Defined Workflow Variables:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You can create variables within a workflow. When you create a variable in a workflow, it is valid only in that workflow. Use the variable in tasks within that workflow. You can edit and delete user-defined workflow variables.&lt;/p&gt;  &lt;p&gt;Use user-defined variables when you need to make a workflow decision based on criteria you specify. For example, you create a workflow to load data to an orders database nightly. You also need to load a subset of this data to headquarters periodically, every tenth time you update the local orders database. Create separate sessions to update the local database and the one at headquarters.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFXzdsG3kEM6puqf9sjVJd5NPcAFkNvcdJIKPsRxuLL-JVC5-Aqq2oJkHSsYQLvqgTMCfHJQO67-LyP9Wb3GbFr4SLya9YTA9FhSW_O7aQUd4wznP-ZeIFIGpEU8zYtw5KDU1GSxIyopmu/s1600-h/clip_image002%5B3%5D.gif&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;120&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1v9eryMO9YY7cSnPSF8hBBLzWIxzF9tm7TqoRZelJSV7jEEFVkx0myjSOw2KEw1STOgo_qYkG4w9wPADnKtQEI0U4xzFGLlNY8rYGt4-awQCCWuZWterhWnmkVYplnya13KzmQ6PvFmdn/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use a user-defined variable to determine when to run the session that updates the orders database at headquarters.&lt;/p&gt;  &lt;p&gt;To configure user-defined workflow variables, complete the following steps:&lt;/p&gt;  &lt;p&gt;1. Create a persistent workflow variable, $$WorkflowCount, to represent the number of times the workflow has run.&lt;/p&gt;  &lt;p&gt;2. Add a Start task and both sessions to the workflow.&lt;/p&gt;  &lt;p&gt;3. Place a Decision task after the session that updates the local orders database.Set up the decision condition to check to see if the number of workflow runs is evenly divisible by 10. Use the modulus (MOD) function to do this.&lt;/p&gt;  &lt;p&gt;4. Create an Assignment task to increment the $$WorkflowCount variable by one.&lt;/p&gt;  &lt;p&gt;5. Link the Decision task to the session that updates the database at headquarters when the decision condition evaluates to true. Link it to the Assignment task when the decision condition evaluates to false. When you configure workflow variables using conditions, the session that updates the local database runs every time the workflow runs. The session that updates the database at headquarters runs every 10th time the workflow runs.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Creating User-Defined Workflow Variables :&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You can create workflow variables for a workflow in the workflow properties.&lt;/p&gt;  &lt;p&gt;To create a workflow variable:&lt;/p&gt;  &lt;p&gt;1. In the Workflow Designer, create a new workflow or edit an existing one.&lt;/p&gt;  &lt;p&gt;2. Select the Variables tab.&lt;/p&gt;  &lt;p&gt;3. Click Add.&lt;/p&gt;  &lt;p&gt;4. Enter the information in the following table and click OK:&lt;/p&gt;  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;453&quot; border=&quot;2&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;&lt;strong&gt;Field&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Name&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;         &lt;p&gt;Variable name. The correct format is $$VariableName. Workflow variable names are not case sensitive.            &lt;br /&gt;Do not use a single dollar sign ($) for a user-defined workflow variable. The single dollar sign             &lt;br /&gt;is reserved for predefined workflow variables&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Data type&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;         &lt;p&gt;Data type of the variable. You can select from the following data types:            &lt;br /&gt;- Date/Time             &lt;br /&gt;- Double             &lt;br /&gt;- Integer             &lt;br /&gt;- Nstring&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Persistent&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;         &lt;p&gt;Whether the variable is persistent. Enable this option if you want the value of the variable            &lt;br /&gt;retained from one execution of the workflow to the next.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Default Value&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;         &lt;p&gt;Default value of the variable. The Integration Service uses this value for the variable during            &lt;br /&gt;sessions if you do not set a value for the variable in the parameter file and there is no value             &lt;br /&gt;stored in the repository.             &lt;br /&gt;Variables of type Date/Time can have the following formats:             &lt;br /&gt;- MM/DD/RR             &lt;br /&gt;- MM/DD/YYYY             &lt;br /&gt;- MM/DD/RR HH24:MI             &lt;br /&gt;- MM/DD/YYYY HH24:MI             &lt;br /&gt;- MM/DD/RR HH24:MI:SS             &lt;br /&gt;- MM/DD/YYYY HH24:MI:SS             &lt;br /&gt;- MM/DD/RR HH24:MI:SS.MS             &lt;br /&gt;- MM/DD/YYYY HH24:MI:SS.MS             &lt;br /&gt;- MM/DD/RR HH24:MI:SS.US             &lt;br /&gt;- MM/DD/YYYY HH24:MI:SS.US             &lt;br /&gt;- MM/DD/RR HH24:MI:SS.NS             &lt;br /&gt;- MM/DD/YYYY HH24:MI:SS.NS             &lt;br /&gt;You can use the following separators: dash (-), slash (/), backslash (\), colon (:), period (.), and             &lt;br /&gt;space. The Integration Service ignores extra spaces. You cannot use one- or three-digit values             &lt;br /&gt;for year or the “HH12” format for hour.             &lt;br /&gt;Variables of type Nstring can have a maximum length of 600 characters.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Is Null&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;Whether the default value of the variable is null. If the default value is null, enable this option.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;125&quot;&gt;Description&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;324&quot;&gt;Description associated with the variable.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. To validate the default value of the new workflow variable, click the Validate button.&lt;/p&gt;  &lt;p&gt;6. Click Apply to save the new workflow variable.&lt;/p&gt;  &lt;p&gt;7. Click OK.&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/workflow-variables_25.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1v9eryMO9YY7cSnPSF8hBBLzWIxzF9tm7TqoRZelJSV7jEEFVkx0myjSOw2KEw1STOgo_qYkG4w9wPADnKtQEI0U4xzFGLlNY8rYGt4-awQCCWuZWterhWnmkVYplnya13KzmQ6PvFmdn/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-7792199539031512098</guid><pubDate>Fri, 22 Apr 2011 07:02:00 +0000</pubDate><atom:updated>2011-05-11T19:39:36.733+05:30</atom:updated><title>Constraint-Based Loading:</title><description>&lt;p&gt;&lt;b&gt;Constraint-Based Loading:&lt;/b&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;In the Workflow Manager, you can specify constraint-based loading for a session. When you select this option, the Integration Service orders the target load on a row-by-row basis. For every row generated by an active source, the Integration Service loads the corresponding transformed row first to the primary key table, then to any foreign key tables. Constraint-based loading depends on the following requirements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Active source. &lt;/b&gt;Related target tables must have the same active source. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Key relationships. &lt;/b&gt;Target tables must have key relationships. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Target connection groups. &lt;/b&gt;Targets must be in one target connection group. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Treat rows as insert. &lt;/b&gt;Use this option when you insert into the target. You cannot use updates with constraint based loading. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Active Source:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When target tables receive rows from different active sources, the Integration Service reverts to normal loading for those tables, but loads all other targets in the session using constraint-based loading when possible. For example, a mapping contains three distinct pipelines. The first two contain a source, source qualifier, and target. Since these two targets receive data from different active sources, the Integration Service reverts to normal loading for both targets. The third pipeline contains a source, Normalizer, and two targets. Since these two targets share a single active source (the Normalizer), the Integration Service performs constraint-based loading: loading the primary key table first, then the foreign key table.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Key Relationships:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When target tables have no key relationships, the Integration Service does not perform constraint-based loading.&lt;/p&gt;  &lt;p&gt;Similarly, when target tables have circular key relationships, the Integration Service reverts to a normal load. For example, you have one target containing a primary key and a foreign key related to the primary key in a second target. The second target also contains a foreign key that references the primary key in the first target. The Integration Service cannot enforce constraint-based loading for these tables. It reverts to a normal load.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Target Connection Groups:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The Integration Service enforces constraint-based loading for targets in the same target connection group. If you want to specify constraint-based loading for multiple targets that receive data from the same active source, you must verify the tables are in the same target connection group. If the tables with the primary key-foreign key relationship are in different target connection groups, the Integration Service cannot enforce constraint-based loading when you run the workflow. To verify that all targets are in the same target connection group, complete the following tasks:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Verify all targets are in the same target load order group and receive data from the same active source. &lt;/li&gt;    &lt;li&gt;Use the default partition properties and do not add partitions or partition points. &lt;/li&gt;    &lt;li&gt;Define the same target type for all targets in the session properties. &lt;/li&gt;    &lt;li&gt;Define the same database connection name for all targets in the session properties. &lt;/li&gt;    &lt;li&gt;Choose normal mode for the target load type for all targets in the session properties. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Treat Rows as Insert:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use constraint-based loading when the session option Treat Source Rows As is set to insert. You might get inconsistent data if you select a different Treat Source Rows As option and you configure the session for constraint-based loading.&lt;/p&gt;  &lt;p&gt;When the mapping contains Update Strategy transformations and you need to load data to a primary key table first, split the mapping using one of the following options:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Load primary key table in one mapping and dependent tables in another mapping. Use constraint-based loading to load the primary table. &lt;/li&gt;    &lt;li&gt;Perform inserts in one mapping and updates in another mapping. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Constraint-based loading does not affect the target load ordering of the mapping. Target load ordering defines the order the Integration Service reads the sources in each target load order group in the mapping. A target load order group is a collection of source qualifiers, transformations, and targets linked together in a mapping. Constraint based loading establishes the order in which the Integration Service loads individual targets within a set of targets receiving data from a single source qualifier.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The following mapping is configured to perform constraint-based loading:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRM5OQ59MgvN2uZvh1oYKm3zDceWmcvwgBjLAH9pokcjEvPjuRvoZm-i3xBzymSX0dF2jfVP_PMC-SVJ0kUHH_9ypO-1bg3Q5X_fmBRVgKq3hMoSfnepmplsJX6HZ_M_g75wn-Rx-ojoFy/s1600-h/clip_image002%5B4%5D.gif&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;440&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiebokpSACE6ZB1BCXpQq5k-3FExHkTuvTTBAEvnfi8cKULXui9pgENiiqiT8Wlhze6WCX8iyo7ITlzizfo6dITfaf6jwG5CyhT8easfnfm8OmdPjUtLy36Zi7g1rjCRe16dekRltbk4INa/?imgmax=800&quot; width=&quot;527&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the first pipeline, target T_1 has a primary key, T_2 and T_3 contain foreign keys referencing the T1 primary key. T_3 has a primary key that T_4 references as a foreign key.&lt;/p&gt;  &lt;p&gt;Since these tables receive records from a single active source, SQ_A, the Integration Service loads rows to the target in the following order:&lt;/p&gt;  &lt;p&gt;1. T_1&lt;/p&gt;  &lt;p&gt;2. T_2 and T_3 (in no particular order)&lt;/p&gt;  &lt;p&gt;3. T_4&lt;/p&gt;  &lt;p&gt;The Integration Service loads T_1 first because it has no foreign key dependencies and contains a primary key referenced by T_2 and T_3. The Integration Service then loads T_2 and T_3, but since T_2 and T_3 have no dependencies, they are not loaded in any particular order. The Integration Service loads T_4 last, because it has a foreign key that references a primary key in T_3.After loading the first set of targets, the Integration Service begins reading source B. If there are no key relationships between T_5 and T_6, the Integration Service reverts to a normal load for both targets.&lt;/p&gt;  &lt;p&gt;If T_6 has a foreign key that references a primary key in T_5, since T_5 and T_6 receive data from a single active source, the Aggregator AGGTRANS, the Integration Service loads rows to the tables in the following order:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;T_5 &lt;/li&gt;    &lt;li&gt;T_6 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;T_1, T_2, T_3, and T_4 are in one target connection group if you use the same database connection for each target, and you use the default partition properties. T_5 and T_6 are in another target connection group together if you use the same database connection for each target and you use the default partition properties. The Integration Service includes T_5 and T_6 in a different target connection group because they are in a different target load order group from the first four targets.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Enabling Constraint-Based Loading:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When you enable constraint-based loading, the Integration Service orders the target load on a row-by-row basis. To enable constraint-based loading:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In the General Options settings of the Properties tab, choose Insert for the Treat Source Rows As property. &lt;/li&gt;    &lt;li&gt;Click the Config Object tab. In the Advanced settings, select Constraint Based Load Ordering. &lt;/li&gt;    &lt;li&gt;Click OK. &lt;/li&gt; &lt;/ol&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/constraint-based-loading-in-workflow.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiebokpSACE6ZB1BCXpQq5k-3FExHkTuvTTBAEvnfi8cKULXui9pgENiiqiT8Wlhze6WCX8iyo7ITlzizfo6dITfaf6jwG5CyhT8easfnfm8OmdPjUtLy36Zi7g1rjCRe16dekRltbk4INa/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-2890652325020947317</guid><pubDate>Fri, 22 Apr 2011 06:57:00 +0000</pubDate><atom:updated>2011-05-11T19:40:56.864+05:30</atom:updated><title>Target Load Order</title><description>&lt;p&gt;Target Load Plan&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;When you use a mapplet in a mapping, the Mapping Designer lets you set the target load plan for sources within the mapplet.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Setting the Target Load Order &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You can configure the target load order for a mapping containing any type of target definition. In the Designer, you can set the order in which the Integration Service sends rows to targets in different target load order groups in a mapping. A target load order group is the collection of source qualifiers, transformations, and targets linked together in a mapping. You can set the target load order if you want to maintain referential integrity when inserting, deleting, or updating tables that have the primary key and foreign key constraints.&lt;/p&gt;  &lt;p&gt;The Integration Service reads sources in a target load order group concurrently, and it processes target load order groups sequentially.&lt;/p&gt;  &lt;p&gt;To specify the order in which the Integration Service sends data to targets, create one source qualifier for each target within a mapping. To set the target load order, you then determine in which order the Integration Service reads each source in the mapping.&lt;/p&gt;  &lt;p&gt;The following figure shows two target load order groups in one mapping:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVWSS5alaWwd2ou7_GbteycQ89axEiLEbkSVij6yit_mm8jCSkDXX9xY2yXrmTlrvgTS29f0TkWi7VLzm_Stb1UK42YspN9kzfpoqImD3eQa54fgkl-q2Erflq4m7giCCpfFlrbzZVupM4/s1600-h/clip_image002%5B1%5D.gif&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;278&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu13fAidEb-MSzRX4OBc_gJuUN8o-12XLOPxu4rUOQPMlvddVys8P8ParDjnLpkV_cfUUfA8aWHrSHgoI2xbDxmabhrThRYt08KNx2t8tz8bHvevXdnE3Cfqu2xP4ytnNEFlrWKoDRPB6L/?imgmax=800&quot; width=&quot;411&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In this mapping, the first target load order group includes ITEMS, SQ_ITEMS, and T_ITEMS. The second target load order group includes all other objects in the mapping, including the TOTAL_ORDERS target. The Integration Service processes the first target load order group, and then the second target load order group.&lt;/p&gt;  &lt;p&gt;When it processes the second target load order group, it reads data from both sources at the same time.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;To set the target load order:&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a mapping that contains multiple target load order groups. &lt;/li&gt;    &lt;li&gt;Click Mappings &amp;gt; Target Load Plan. &lt;/li&gt;    &lt;li&gt;The Target Load Plan dialog box lists all Source Qualifier transformations in the mapping and the targets that receive data from each source qualifier. &lt;/li&gt;    &lt;li&gt;Select a source qualifier from the list. &lt;/li&gt;    &lt;li&gt;Click the Up and Down buttons to move the source qualifier within the load order. &lt;/li&gt;    &lt;li&gt;Repeat steps 3 to 4 for other source qualifiers you want to reorder. Click OK.&lt;b&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ol&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/target-load-order.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu13fAidEb-MSzRX4OBc_gJuUN8o-12XLOPxu4rUOQPMlvddVys8P8ParDjnLpkV_cfUUfA8aWHrSHgoI2xbDxmabhrThRYt08KNx2t8tz8bHvevXdnE3Cfqu2xP4ytnNEFlrWKoDRPB6L/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-3305676335196438966</guid><pubDate>Thu, 21 Apr 2011 03:02:00 +0000</pubDate><atom:updated>2011-05-11T19:42:54.843+05:30</atom:updated><title>Type 2</title><description>&lt;b&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;SCD 2 (Complete):&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; Let us drive the point home using a simple scenario. For eg., in the current month ie.,(01-01-2010) we are provided with an source table with the three columns and three rows in it like (EMpno,Ename,Sal). There is a new employee added and one change in the records in the month (01-02-2010). We are gonna use the SCD-2 style to extract and load the records in to target table.&lt;/b&gt;  &lt;ul&gt;   &lt;li&gt;The thing to be noticed here is if there is any update in the salary of any employee then the history of that employee is displayed with the current date as the start date and the previous date as the end date. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Source Table: (01-01-11) &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;Emp no&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;86&quot;&gt;           &lt;p&gt;Ename&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt;           &lt;p&gt;Sal&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;101&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;86&quot;&gt;           &lt;p&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;86&quot;&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt;           &lt;p&gt;2000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;86&quot;&gt;           &lt;p&gt;C&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;131&quot;&gt;           &lt;p&gt;3000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Target Table: (01-01-11)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Skey&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;Emp no&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;Ename &lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Sal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;S-date&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;63&quot;&gt;           &lt;p&gt;E-date&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;52&quot;&gt;           &lt;p&gt;Ver&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Flag&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;100&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;101&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-01-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;63&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;52&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;200&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;2000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-01-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;63&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;52&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;300&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;C&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;3000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-01-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;63&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;52&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Source Table: (01-02-11) &lt;/i&gt;&lt;/b&gt;    &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;Emp no&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;Ename&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;           &lt;p&gt;Sal&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;101&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;           &lt;p&gt;2500&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;C&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;           &lt;p&gt;3000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;104&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;D&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;           &lt;p&gt;4000&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Target Table: (01-02-11)&lt;/i&gt;&lt;/b&gt;     &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Skey&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;Emp no&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;Ename &lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Sal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;S-date&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;E-date&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;Ver&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;Flag&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;100&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;101&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-02-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;200&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;2000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-02-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;300&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;C&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;3000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-02-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;201&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;2500&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-02-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-01-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;400&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;79&quot;&gt;           &lt;p&gt;104&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;D&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;4000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;01-02-10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;84&quot;&gt;           &lt;p&gt;Null&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;60&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign=&quot;top&quot; width=&quot;72&quot;&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;In the second Month we have one more employee added up to the table with the Ename D and salary of the Employee is changed to the 2500 instead of 2000.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Is to import Source Table and Target table.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create a table by name emp_source with three columns as shown above in oracle. &lt;/li&gt;    &lt;li&gt;Import the source from the source analyzer. &lt;/li&gt;    &lt;li&gt;Drag the Target table twice on to the mapping designer to facilitate insert or update process. &lt;/li&gt;    &lt;li&gt;Go to the targets Menu and click on generate and execute to confirm the creation of the target tables. &lt;/li&gt;    &lt;li&gt;The snap shot of the connections using different kinds of transformations are shown below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3484HhJY9kk3f5RB7H94ZkV13TAdTIxRkoTYSKNwQ8DqhVkCjpD_6OD2gDMytSiWSU0V1vWAfHPs8_OJ0RjJq4SbstaqDrIqI8LpZoTK0BvrnyTPkXbkdNo0ALTSPaejNx51vF9SkPQZb/s1600-h/clip_image002%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;308&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL7JNuMGMIgE1HLj6B9lgFGKNEijeMyBAQLMYVdZpKwAnJXPcFWxE3e7dqDOFvL8Cqo3-T6KMCVcIeY5F0tSQcM575AJ86LU9uLnY22UsZ3Y25-PazdS14YkHnlAAXv3UrxvDLo5pnAovB/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In The Target Table we are goanna add five columns (Skey, Version, Flag, S_date ,E_Date). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Step 2:&lt;/b&gt; Design the mapping and apply the necessary transformation.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Here in this transformation we are about to use four kinds of transformations namely Lookup transformation (1), Expression Transformation (3), Filter Transformation (2), Sequence Generator. Necessity and the usage of all the transformations will be discussed in detail below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Look up Transformation: The purpose of this transformation is to Lookup on the target table and to compare the same with the Source using the Lookup Condition.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The first thing that we are gonna do is to create a look up transformation and connect the Empno from the source qualifier to the transformation. &lt;/li&gt;    &lt;li&gt;The snapshot of choosing the Target table is shown below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZebz3eWNmNUU2MRFE69QcT2HltXd7Rx3uOgjW351Z-iq4fkU_1CWYfAGasfGTiG8XvMmqJ605CMaRLlvuedv5aWpDlzsxRajWo8bN0KZjDr27rWMKvtaymhWnNSdgwLYkgOIVUB5fgW0/s1600-h/clip_image004%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image004&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;313&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdckwCom9hnDombB5eup1ERrpdPZSY6w7RXi22pmc0pDf4N5-xI1Q9mFXn40y7wmfZlSyItk2xgZnLp-qmk72d9DPznX5dbG_yQSS2Yr-kc_Qbh3OFydZ-F03_7CH2PlAKUYam-5RBbGt5/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag the Empno column from the Source Qualifier to the Lookup Transformation. &lt;/li&gt;    &lt;li&gt;The Input Port for only the Empno1 should be checked. &lt;/li&gt;    &lt;li&gt;In the Properties tab (i) Lookup table name -&amp;gt;Emp_Target. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;(ii)Look up Policy on Multiple Mismatch -&amp;gt; use Last Value.&lt;/p&gt;  &lt;p&gt;(iii) Connection Information -&amp;gt;Oracle.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In the Conditions tab (i) Click on Add a new condition &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;(ii)Lookup Table Column should be Empno, Transformation port should be Empno1 and Operator should ‘=’.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Expression Transformation: &lt;/b&gt;After we are done with the Lookup Transformation we are using an expression transformation to find whether the data on the source table matches with the target table. We specify the condition here whether to insert or to update the table. The steps to create an Expression Transformation are shown below.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the columns from both the source and the look up transformation and drop them all on to the Expression transformation. &lt;/li&gt;    &lt;li&gt;Now double click on the Transformation and go to the Ports tab and create two new columns and name it as insert and update. Both these columns are goanna be our output data so we need to have unchecked input check box. &lt;/li&gt;    &lt;li&gt;The Snap shot for the Edit transformation window is shown below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNyiuAkhBLvyAauEwJ-MT3oczZcIvA2W7qeMAcbLpEsbncj9anF8cigwqslfvbwLnvJ42pi5pS6G3wmYdS-l4slKalR5fxgZ7uR70eQOB-GmN28YWMjqvxWYXSrCzvEbB3pqBBchxLtsBx/s1600-h/clip_image006%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image006&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;300&quot; alt=&quot;clip_image006&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixST3cyw7kjM17yAPVii9kb8ycVOkTNxEUzjR2TdgVOF-b8o4QkFzO6aPOU8QIE9a63nEAAZmyLTy_N2PB508D9ZK-cpyh3pNCWD1bnO32D-XStm124eFsyg26_A69BCgLu5UQ582bqyNQ/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The condition that we want to parse through our output data are listed below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Insert : IsNull(EmpNO1) &lt;/p&gt;  &lt;p&gt;Update: iif(Not isnull (Skey) and Decode(SAL,SAL1,1,0)=0,1,0) .&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;We are all done here .Click on apply and then OK. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Filter Transformation: &lt;/b&gt;We need two filter transformations the purpose the first filter is to filter out the records which we are goanna insert and the next is vice versa.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If there is no change in input data then filter transformation 1 forwards the complete input to Exp 1 and same output is goanna appear in the target table. &lt;/li&gt;    &lt;li&gt;If there is any change in input data then filter transformation 2 forwards the complete input to the Exp 2 then it is gonna forward the updated input to the target table. &lt;/li&gt;    &lt;li&gt;Go to the Properties tab on the Edit transformation &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;(i) The value for the filter condition 1 is Insert.&lt;/p&gt;  &lt;p&gt;(ii) The value for the filter condition 2 is Update.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The closer view of the connections from the expression to the filter is shown below. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ29xoHZYWbHcrBPqZLld6Hxk2-a7keEeJSo9R9juIA0L8h58vKWF5S1OZhGpw_lkWRvAk3NDtL8-xHsKuoLlDz83SS2kBl_gs34lz3YRN_UKbhBbQqNFJUlPs5MrtWoU2XI0XqG6ZHf2E/s1600-h/clip_image008%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image008&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;458&quot; alt=&quot;clip_image008&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6JZmBhnJDJKPB76Y8HO9s0sCnOfo3SLk8E1-VPMN4tCOPEAY-ro3MXMlKF4edqOmph04EhFtCPuCgmaMMsTRWLj1ecfamcIaJh5-_CK_UYopTLr_rqB87Z6oXQK_L7fYg-F0ZLoxLn-on/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sequence Generator: &lt;/b&gt;We use this to generate an incremental cycle of sequential range of number.The purpose of this in our mapping is to increment the skey in the bandwidth of 100&lt;b&gt;.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3_oEGVmDEdclAvBsCzswjDsB0nNWv9AuE4L2dL9nq4h6nm3bV2HXpIiQvfIWLaxwsYR5TXLPeXOlz3fcXxQdMAhyk_T3cSygbuhYVyNUDKWN4sSauQJ7DbHM40ffnLMDq2gVizOhiaH8G/s1600-h/clip_image010%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image010&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;212&quot; alt=&quot;clip_image010&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisKSFLRoncpc4wct3jT_ymFjIy6lxIYWgN_sjomagcVhYa7RHlDhGnvM0zA5HXtbSx3tBJtq7fctsHV2oGQsDHy1iotd9m_m-LAkvuf8nMpeFemesH7Dfk6sYjrMsJAIUf8khZnRK1MIBw/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;We are gonna have a sequence generator and the purpose of the sequence generator is to increment the values of the skey in the multiples of 100 (bandwidth of 100). &lt;/li&gt;    &lt;li&gt;Connect the output of the sequence transformation to the Exp 1. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Expression Transformation: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Exp 1: &lt;/b&gt;It updates the target table with the skey values. Point to be noticed here is skey gets multiplied by 100 and a new row is generated if there is any new EMP added to the list. Else the there is no modification done on the target table&lt;b&gt;.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimWAp3nx9iQceT-5T3kvVBPJzttD3AjxW1N8ThJ2_C-NkJyWXXuuG2n3g83PE4ij4KVHTm0UFFZBe371_xsxmr15jvJg76uHXShsD6lVjqsKn9Bi7rmekt5SRItMyufn1R81KnEhFJTIep/s1600-h/clip_image012%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image012&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;271&quot; alt=&quot;clip_image012&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgytH6CiX_Z7LDjU0i51LVE7gUCHVvpSI4KhQgQifZ1b5kICf49NmN6xrk59Dht3Itq2ggRmat90BrehNTk2e3nMVHV9hSrYPnS8VLRf-F85Yte7zwdpwS2TMXqkNVe8LeS3yyqnLJDa0u0/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the columns from the filter 1 to the Exp 1. &lt;/li&gt;    &lt;li&gt;Now add a new column as N_skey and the expression for it is gonna be Nextval1*100. &lt;/li&gt;    &lt;li&gt;We are goanna make the s-date as the o/p and the expression for it is sysdate. &lt;/li&gt;    &lt;li&gt;Flag is also made as output and expression parsed through it is 1. &lt;/li&gt;    &lt;li&gt;Version is also made as output and expression parsed through it is 1. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Exp 2: &lt;/b&gt;If same employee is found with any updates in his records then Skey gets added by 1 and version changes to the next higher number,F&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag all the columns from the filter 2 to the Exp 2. &lt;/li&gt;    &lt;li&gt;Now add a new column as N_skey and the expression for it is gonna be Skey+1. &lt;/li&gt;    &lt;li&gt;Both the S_date and E_date is gonna be sysdate. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilh1ZIT1iVOdIDMnblPHwo-LlsbhOhZ1eXOxMh6gBHdpkU_XbggyV5qbPfHGduqwaLq2ctZ9vnvuuoc4JC5nhl4Z6czI2dGLFItmaje74E4q4h5EiFhbjH9z3_BlikkOtfTwfTHnHBIZ71/s1600-h/clip_image014%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image014&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;331&quot; alt=&quot;clip_image014&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-5fNsXud8T3mp4F4uL5iVZihgDN4s-estNfw88mMGAUIFbwp0sWTooXXWyFqlL6xyhBqaIszhQqHdqoP9Dd3LRJmFD0CzZwBQrKTXJJfgaegAoj5o4NwLkqbShXmeilr9AyrUjFdwkPk/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Exp 3: &lt;/b&gt;If any record of in the source table gets updated then we make it only as the output.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJYa3uaKK-zjLhYUvYU_BTwUvQScP8cEf7EiLS1oz10BbrfpgX4R8Xjuv4-eUFTfMi0fe3Rl2odeSFjm6Gl9vUPFkx2rkzYAO5EVAm8c0ErnyCK8MSQGTXb2Je6iIqH2ulZ2XC78u2qlh8/s1600-h/clip_image016%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image016&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;193&quot; alt=&quot;clip_image016&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyjm7r5bAq6cwPM8ZABDwjHsgO1FYKYBeZWnXCKRWmaUSWjIqWIw0ycOgiP-HJRnoNkiBQ1-VfWfimd_sVdZuf8YnfwA1tuKdsKkbaLJUVnOoh-_Zaf8MKzjj9WbdAB2tKFI5vOnWAHMnJ/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If change is found then we are gonna update the E_Date to S_Date. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Update Strategy: &lt;/b&gt;This is place from where the update instruction is set on the target table.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The update strategy expression is set to 1. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 3:&lt;/b&gt; Create the task and Run the work flow.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Don’t check the truncate table option. &lt;/li&gt;    &lt;li&gt;Change Bulk to the Normal. &lt;/li&gt;    &lt;li&gt;Run the work flow from task. &lt;/li&gt;    &lt;li&gt;Create the task and run the work flow. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhauKxfc3H7Ca1i79dy4A2op-WQwjo3hpNRSfSiT7gr0RnUFW_D9dyBlLZpZBziHDMr3X_ptIgLYOHsdaTuxVPgUj2fGVFQD70Guch4um7IpurTp86cmAOmVg0XTAn9KcWzXF9SRtVzgoH/s1600-h/clip_image018%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image018&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;484&quot; alt=&quot;clip_image018&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTT0ps1r8Gklx_pnNARIrlavgJI1X0V9tgRnC97ceppBKybjU91z81_8FSwEkMG1zOOGDk4Mr8r5F957-wHB2dtFTZKjjF6LwyCc6XLuGBOgp2egTUFby9rqRXYTIZTaAjbaWxbnFwDUw/?imgmax=800&quot; width=&quot;600&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 4:&lt;/b&gt; Preview the Output in the target table.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS0qlbTVd_xWLECut6tPQ_NGolwEq80G8jZgio4pI96nSgGazuLMelUig8RyyTXrvuZThlcqymT-N96vHd62qiIPSOwwwOOggnao9TJzykUmZ_uwp5eY6QObNobfwCu6h5qGskxX2RLMaw/s1600-h/clip_image020%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image020&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;412&quot; alt=&quot;clip_image020&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYm54dMsTRaE7ZuQ5whyphenhyphenQfthZ55Wp8xKNryBZPhnKTDnzSJZkzdEVhODZUY8wcW19qnvA9-_qjbg01V9UrVnXWX0iHCmlD6HhimpFkArVPgTVXoEQc3EWwJ2XLoPAuerH1TOkV4IHSUpc9/?imgmax=800&quot; width=&quot;1028&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/type-2_21.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL7JNuMGMIgE1HLj6B9lgFGKNEijeMyBAQLMYVdZpKwAnJXPcFWxE3e7dqDOFvL8Cqo3-T6KMCVcIeY5F0tSQcM575AJ86LU9uLnY22UsZ3Y25-PazdS14YkHnlAAXv3UrxvDLo5pnAovB/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-5109768980449841599</guid><pubDate>Thu, 21 Apr 2011 02:54:00 +0000</pubDate><atom:updated>2011-05-11T19:44:59.207+05:30</atom:updated><title>Update Strategy Transformation</title><description>&lt;br /&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;br /&gt;  &lt;ul&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Active and Connected Transformation &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Till now, we have only inserted rows in our target tables. What if we want to update, delete or reject rows coming from source based on some condition? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; If Address of a CUSTOMER changes, we can update the old address or keep both old and new address. One row is for old and one for new. This way we maintain the historical data. &lt;/p&gt;  &lt;p&gt;Update Strategy is used with Lookup Transformation. In DWH, we create a Lookup on target table to determine whether a row already exists or not. Then we insert, update, delete or reject the source record as per business need. &lt;/p&gt;  &lt;p&gt;In Power Center, we set the update strategy at two different levels: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Within a session &lt;/li&gt;    &lt;li&gt;Within a Mapping &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;1. Update Strategy within a session: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When we configure a session, we can instruct the IS to either treat all rows in the same way or use instructions coded into the session mapping to flag rows for different database operations. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Session Configuration:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Edit Session -&amp;gt; Properties -&amp;gt; Treat Source Rows as: (Insert, Update, Delete, and Data Driven). Insert is default. Specifying Operations for Individual Target Tables:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3VWJHk0clYpQi919yc_EMVaFKLHbb0yLnYWcg3V7d8D_rn4Dky7WvrlfI1jOiV5GV94rNAGKsBw8hAO16sReaeRfEdQSnx_Iln3CtxXm2kuDkI75qtw2pDwV7CoZuTIMw-M9soVHwGBz/s1600-h/clip_image002%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;386&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9oyyUliDe6QXbsh7g7NmXQ1QXZucepjlhKwiTDg0W64dhhJlWOfJgrEPJ3HUZS38FO_t8IRPlP-yPQVLjeqU-liQLpVavxbQUvZzHPBPCVPlwv-Zq4OzoyzstlAAmHJBdFKFFE5iTUasn/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can set the following update strategy options:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Insert:&lt;/b&gt; Select this option to insert a row into a target table. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Delete:&lt;/b&gt; Select this option to delete a row from a table. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; We have the following options in this situation: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;b&gt;Update as Update.&lt;/b&gt; Update each row flagged for update if it exists in the target table. &lt;/li&gt;    &lt;li&gt;&amp;#160;&lt;b&gt;Update as Insert.&lt;/b&gt; Inset each row flagged for update. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&amp;#160;&lt;/b&gt;&lt;b&gt;Update else Insert.&lt;/b&gt; Update the row if it exists. Otherwise, insert it. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Truncate table:&lt;/b&gt; Select this option to truncate the target table before loading data. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;2. Flagging Rows within a Mapping&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Within a mapping, we use the Update Strategy transformation to flag rows for insert, delete, update, or reject. &lt;/p&gt;  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;394&quot; border=&quot;2&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;         &lt;p&gt;&lt;strong&gt;Operation &lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;182&quot;&gt;         &lt;p&gt;&lt;strong&gt;Constant &lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;75&quot;&gt;         &lt;p&gt;&lt;strong&gt;Numeric Value &lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;         &lt;p&gt;INSERT &lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;182&quot;&gt;DD_INSERT &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;75&quot;&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;         &lt;p&gt;UPDATE &lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;182&quot;&gt;DD_UPDATE &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;75&quot;&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;         &lt;p&gt;DELETE &lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;182&quot;&gt;DD_DELETE &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;75&quot;&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;         &lt;p&gt;REJECT &lt;/p&gt;       &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;182&quot;&gt;DD_REJECT &lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;75&quot;&gt;3&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update Strategy Expressions: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Frequently, the update strategy expression uses the IIF or DECODE function from the transformation language to test each row to see if it meets a particular condition. &lt;/p&gt;  &lt;p&gt;IIF( ( ENTRY_DATE &amp;gt; APPLY_DATE), DD_REJECT, DD_UPDATE ) &lt;/p&gt;  &lt;p&gt;Or &lt;/p&gt;  &lt;p&gt;IIF( ( ENTRY_DATE &amp;gt; APPLY_DATE), 3, 2 ) &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The above expression is written in Properties Tab of Update Strategy T/f. &lt;/li&gt;    &lt;li&gt;DD means DATA DRIVEN &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Forwarding Rejected Rows: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;We can configure the Update Strategy transformation to either pass rejected rows to the next transformation or drop them.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Steps: &lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create Update Strategy Transformation &lt;/li&gt;    &lt;li&gt;Pass all ports needed to it. &lt;/li&gt;    &lt;li&gt;Set the Expression in Properties Tab. &lt;/li&gt;    &lt;li&gt;Connect to other transformations or target. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Performance tuning:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Use Update Strategy transformation as less as possible in the mapping. &lt;/li&gt;    &lt;li&gt;Do not use update strategy transformation if we just want to insert into target table, instead use direct mapping, direct filtering etc. &lt;/li&gt;    &lt;li&gt;For updating or deleting rows from the target table we can use Update Strategy transformation itself. &lt;/li&gt; &lt;/ol&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/update-strategy-transformation.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9oyyUliDe6QXbsh7g7NmXQ1QXZucepjlhKwiTDg0W64dhhJlWOfJgrEPJ3HUZS38FO_t8IRPlP-yPQVLjeqU-liQLpVavxbQUvZzHPBPCVPlwv-Zq4OzoyzstlAAmHJBdFKFFE5iTUasn/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-6463044558830671802</guid><pubDate>Thu, 21 Apr 2011 02:43:00 +0000</pubDate><atom:updated>2011-05-11T19:46:28.727+05:30</atom:updated><title>UNION TRANSFORMATION</title><description>&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;ul&gt;   &lt;li&gt;Active and Connected transformation. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Union transformation is a multiple input group transformation that you can use to merge data from multiple pipelines or pipeline branches into one pipeline branch. It merges data from multiple sources similar to the &lt;b&gt;UNION ALL&lt;/b&gt; SQL statement to Combine the results from two or more SQL statements. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Union Transformation Rules and Guidelines &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;we can create multiple input groups, but only one output group. &lt;/li&gt;    &lt;li&gt;we can connect heterogeneous sources to a Union transformation. &lt;/li&gt;    &lt;li&gt;all input groups and the output group must have matching ports. The Precision, data type, and scale must be identical across all groups. &lt;/li&gt;    &lt;li&gt;The Union transformation does not remove duplicate rows. To remove Duplicate rows, we must add another transformation such as a Router or Filter Transformation. &lt;/li&gt;    &lt;li&gt;we cannot use a Sequence Generator or Update Strategy transformation upstream from a Union transformation. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Union Transformation Components&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When we configure a Union transformation, define the following components:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Transformation tab:&lt;/b&gt; We can rename the transformation and add a description.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Properties tab:&lt;/b&gt; We can specify the tracing level.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Groups tab:&lt;/b&gt; We can create and delete input groups. The Designer displays groups we create on the Ports tab.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Group Ports tab:&lt;/b&gt; We can create and delete ports for the input groups. The Designer displays ports we create on the Ports tab. &lt;/p&gt;  &lt;p&gt;We cannot modify the Ports, Initialization Properties, Metadata Extensions, or Port Attribute Definitions tabs in a Union transformation. &lt;/p&gt;  &lt;p&gt;Create input groups on the Groups tab, and create ports on the Group Ports tab. We can create one or more input groups on the Groups tab. The Designer creates one output group by default. We cannot edit or delete the default output group. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Example: to combine data of tables EMP_10, EMP_20 and EMP_REST &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Import tables EMP_10, EMP_20 and EMP_REST in shared folder in Sources. &lt;/li&gt;    &lt;li&gt;Create a target table EMP_UNION_EXAMPLE in target designer. Structure should be same EMP table. &lt;/li&gt;    &lt;li&gt;Create the shortcuts in your folder. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcfaJqYuI-gIr8WpRV8i798zlIa1Pi86Ks_c-bJndnoK9C38VG-1KiA18FMLUPcvlH1pYbvynGtbfVMcHU8SHpx4EMBI06wJDpRyzvTqJ2hgN1cfwn8uvVAtaA9ZyT6xYuQOSvvef45uqD/s1600-h/clip_image002%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;408&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLh-MqzJ-r-7z60mk7fiUKqUsJxNbjfmy9ylq2F9x-5Fmew8tZNeO3qfvU7aBOJ5V8OF9z5qs1EhczqA8WCwZRYsD4y-D3SFLirzZ2qZ605C06vozOZgpNYuHhtkGi44onSyMhNGHwjqQT/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color=&quot;#0000ff&quot;&gt;Creating Mapping:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open folder where we want to create the mapping. &lt;/li&gt;    &lt;li&gt;Click Tools -&amp;gt; Mapping Designer. &lt;/li&gt;    &lt;li&gt;Click Mapping-&amp;gt; Create-&amp;gt; Give mapping name. Ex: m_union_example &lt;/li&gt;    &lt;li&gt;Drag EMP_10, EMP_20 and EMP_REST from source in mapping. &lt;/li&gt;    &lt;li&gt;Click Transformation -&amp;gt; Create -&amp;gt; Select Union from list. Give name and click Create. Now click done. &lt;/li&gt;    &lt;li&gt;Pass ports from SQ_EMP_10 to Union Transformation. &lt;/li&gt;    &lt;li&gt;Edit Union Transformation. Go to Groups Tab &lt;/li&gt;    &lt;li&gt;One group will be already there as we dragged ports from SQ_DEPT_10 to Union Transformation. &lt;/li&gt;    &lt;li&gt;As we have 3 source tables, we 3 need 3 input groups. Click add button to add 2 more groups. See Sample Mapping &lt;/li&gt;    &lt;li&gt;We can also modify ports in ports tab. &lt;/li&gt;    &lt;li&gt;Click Apply -&amp;gt; Ok. &lt;/li&gt;    &lt;li&gt;Drag target table now. &lt;/li&gt;    &lt;li&gt;Connect the output ports from Union to target table. &lt;/li&gt;    &lt;li&gt;Click Mapping -&amp;gt; Validate &lt;/li&gt;    &lt;li&gt;Repository -&amp;gt; Save &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Create Session and Workflow as described earlier. Run the Workflow and see the data in target table. &lt;/li&gt;    &lt;li&gt;Make sure to give connection information for all 3 source Tables. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOxHtonKymvCN52C3I5JElOQiBhdKTuqQmh-bwh4gDgttCj9jp1dcd0SmnMh2Zfj5PfHRdjCUe6LB_ex4sV6mdg52TAPOZS6xd-gHLr_RyEZaX4XXUAfyWoBdCKgPeXtIsXEwyDyX8yCtZ/s1600-h/clip_image002%5B5%5D%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002[5]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;408&quot; alt=&quot;clip_image002[5]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTXlTk-Xg0_q6VvB4Ne15xCCskLpS6vGnbZA2FNihI0SiRUAeUKpZldD-Su8otRzDZ79np2zBW8_CYuGOaCsBhdymtI8RgAp1whpM81pNHDG9n_dXIMvB7IlgxT0vh9PvY3EHAOvziHqUo/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sample mapping picture &lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/union-transformation_21.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLh-MqzJ-r-7z60mk7fiUKqUsJxNbjfmy9ylq2F9x-5Fmew8tZNeO3qfvU7aBOJ5V8OF9z5qs1EhczqA8WCwZRYsD4y-D3SFLirzZ2qZ605C06vozOZgpNYuHhtkGi44onSyMhNGHwjqQT/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-6283032732523202605</guid><pubDate>Thu, 21 Apr 2011 02:36:00 +0000</pubDate><atom:updated>2011-05-11T19:48:15.712+05:30</atom:updated><title>Transaction Control:</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt;   &lt;p&gt;Power Center lets you control commit and roll back transactions based on a set of rows that pass through a Transaction Control transformation. A transaction is the set of rows bound by commit or roll back rows. You can define a transaction based on a varying number of input rows. You might want to define transactions based on a group of rows ordered on a common key, such as employee ID or order entry date. &lt;/p&gt;  &lt;p&gt;In Power Center, you define transaction control at the following levels:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Within a mapping. &lt;/b&gt;Within a mapping, you use the Transaction Control transformation to define a transaction. You define transactions using an expression in a Transaction Control transformation. Based on the return value of the expression, you can choose to commit, roll back, or continue without any transaction changes. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Within a session. &lt;/b&gt;When you configure a session, you configure it for user-defined commit. You can choose to commit or roll back a transaction if the Integration Service fails to transform or write any row to the target. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;When you run the session, the Integration Service evaluates the expression for each row that enters the transformation. When it evaluates a commit row, it commits all rows in the transaction to the target or targets. When the Integration Service evaluates a roll back row, it rolls back all rows in the transaction from the target or targets. If the mapping has a flat file target you can generate an output file each time the Integration Service starts a new transaction. You can dynamically name each target flat file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Properties Tab&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;On the Properties tab, you can configure the following properties:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Transaction control expression &lt;/li&gt;    &lt;li&gt;Tracing level &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enter the transaction control expression in the Transaction Control Condition field. The transaction control expression uses the IIF function to test each row against the condition. Use the following syntax for the expression:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIF (condition, value1, value2)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The expression contains values that represent actions the Integration Service performs based on the return value of the condition. The Integration Service evaluates the condition on a row-by-row basis. The return value determines whether the Integration Service commits, rolls back, or makes no transaction changes to the row.&lt;/p&gt;  &lt;p&gt;When the Integration Service issues a commit or roll back based on the return value of the expression, it begins a new transaction. Use the following built-in variables in the Expression Editor when you create a transaction control expression:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;TC_CONTINUE_TRANSACTION. &lt;/b&gt;The Integration Service does not perform any transaction change for this row. This is the default value of the expression. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;TC_COMMIT_BEFORE. &lt;/b&gt;The Integration Service commits the transaction, begins a new transaction, and writes the current row to the target. The current row is in the new transaction. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;TC_COMMIT_AFTER. &lt;/b&gt;The Integration Service writes the current row to the target, commits the transaction, and begins a new transaction. The current row is in the committed transaction. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;TC_ROLLBACK_BEFORE. &lt;/b&gt;The Integration Service rolls back the current transaction, begins a new transaction, and writes the current row to the target. The current row is in the new transaction. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;TC_ROLLBACK_AFTER. &lt;/b&gt;The Integration Service writes the current row to the target, rolls back the transaction, and begins a new transaction. The current row is in the rolled back transaction. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If the transaction control expression evaluates to a value other than commit, roll back, or continue, the Integration Service fails the session.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Mapping Guidelines and Validation&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Use the following rules and guidelines when you create a mapping with a &lt;strong&gt;Transaction Control transformation:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If the mapping includes an XML target, and you choose to append or create a new document on commit, the input groups must receive data from the same transaction control point. &lt;/li&gt;    &lt;li&gt;Transaction Control transformations connected to any target other than relational, XML, or dynamic MQSeries targets are ineffective for those targets. &lt;/li&gt;    &lt;li&gt;You must connect each target instance to a Transaction Control transformation. &lt;/li&gt;    &lt;li&gt;You can connect multiple targets to a single Transaction Control transformation. &lt;/li&gt;    &lt;li&gt;You can connect only one effective Transaction Control transformation to a target. &lt;/li&gt;    &lt;li&gt;You cannot place a Transaction Control transformation in a pipeline branch that starts with a Sequence Generator transformation. &lt;/li&gt;    &lt;li&gt;If you use a dynamic Lookup transformation and a Transaction Control transformation in the same mapping, a rolled-back transaction might result in unsynchronized target data. &lt;/li&gt;    &lt;li&gt;A Transaction Control transformation may be effective for one target and ineffective for another target. If each target is connected to an effective Transaction Control transformation, the mapping is valid. &lt;/li&gt;    &lt;li&gt;Either all targets or none of the targets in the mapping should be connected to an effective Transaction Control transformation. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Example to Transaction Control:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1:&lt;/b&gt; Design the mapping.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD3cUcMH5Yd8F91kdXFErOZhBUZwcSxL_hmB4GR7yZ5f83A96JFlM0rBILsKMYLd2kRYbxB5LndnY1AYA1dWoT5nDqHvYyltusZahilXjlS-VncFn8YmTAH5kU8Ka4OM7b7kXM9J3bhyphenhyphenyf/s1600-h/clip_image002%5B5%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;417&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_W9rxxAKqydADzxad5cNiuX3QNCMXspgVieKn37iSzMFz_POCGK3iNazdj2s27IUTgEkv-CH8mDVUYkaw9OjgmgtXDwJzoSbpMkS4ulxikER8av3pbEG0C3fYDEekP-v3AeQNxEUoe-8/?imgmax=800&quot; width=&quot;1028&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2: &lt;/b&gt;Creating a Transaction Control Transformation.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In the Mapping Designer, click Transformation &amp;gt; Create. Select the Transaction Control transformation. &lt;/li&gt;    &lt;li&gt;Enter a name for the transformation.[ The naming convention for Transaction Control transformations is TC_TransformationName]. &lt;/li&gt;    &lt;li&gt;Enter a description for the transformation. &lt;/li&gt;    &lt;li&gt;Click Create. &lt;/li&gt;    &lt;li&gt;Click Done. &lt;/li&gt;    &lt;li&gt;Drag the ports into the transformation. &lt;/li&gt;    &lt;li&gt;Open the Edit Transformations dialog box, and select the Ports tab. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Select the Properties tab. Enter the transaction control expression that defines the commit and roll back behavior.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8fBU39SfR_NKhkEflZUj0VzgPAJFN6Tc0rHkf6a_ornvpCQbZ-OULwVN-KT6RRHrlvWCAN_95hIwxEhYuWw-NhW7ip3Nzx6Drpoitk37PBe5fIMTPN96EpsclUszZoY8myqq4oFPfrZVb/s1600-h/clip_image004%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image004&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;436&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ABd6kr5XAkgNIpwjExWOGy5-smDRmfkWqAZj_jJe6CVoLDTmoEmanshWwiaUvXFbKc7Cx1Y0OxDC-UXyVatzgD_4TmOYE-wRSdXX86W7bslaTJcGMswN28Gw4Llq7MBWswyRmcpAKfNK/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Go to the Properties tab and click on the down arrow to get in to the expression editor window. Later go to the Variables tab and Type IIF(EMpno=7654,) select the below things from the built in functions.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIF (EMPNO=7654,TC_COMMIT_BEFORE,TC_CONTINUE_TRANSACTION)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Connect all the columns from the transformation to the target table and save the mapping. &lt;/li&gt;    &lt;li&gt;Select the Metadata Extensions tab. Create or edit metadata extensions for the Transaction Control transformation. &lt;/li&gt;    &lt;li&gt;Click OK. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Step 3: &lt;/b&gt;Create the task and the work flow.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 4: &lt;/b&gt;Preview&lt;b&gt; &lt;/b&gt;the output in the target table.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6hfNpFczimCCRw7AhDyw-U8boPoLMC-3_m4KnLPotA3mzxsl3dCCEh-TmZEfZU90Zpi8CMcW855Ro1QVfpCB8YY67qnMKzzppY05l4fWcAwGpbGh7bDwUNbgOxQh2BhJIrDibQTsIBuMi/s1600-h/clip_image006%5B3%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image006&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;147&quot; alt=&quot;clip_image006&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHQ_c-x_xVLFbqcM25U1R6UsX2SHpjqqrqvNfFRm3IUuin_nebh8VO2dalqVEGT5uqhNYMJluzOIfOHVTZ45W289cELhJvsCxFpI2sYZTAQEHnaQIxAdjwBlGu4NAGkKF9wFUIRf7_pVLP/?imgmax=800&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/transaction-control_21.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_W9rxxAKqydADzxad5cNiuX3QNCMXspgVieKn37iSzMFz_POCGK3iNazdj2s27IUTgEkv-CH8mDVUYkaw9OjgmgtXDwJzoSbpMkS4ulxikER8av3pbEG0C3fYDEekP-v3AeQNxEUoe-8/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8005859072274282998.post-3856944207324083399</guid><pubDate>Thu, 21 Apr 2011 02:32:00 +0000</pubDate><atom:updated>2011-05-11T19:49:21.493+05:30</atom:updated><title>STORED PROCEDURE T/F</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;  // Bookmark Url (optional).&lt;br /&gt;  dbm_bookmarkUrl    = &quot;http://informaticatutorials-naveen.blogspot.com/&quot;;&lt;br /&gt;  // Bookmark Title (optional).&lt;br /&gt;  dbm_bookmarkTitle  = &quot;Book Mark&quot;;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.seocentro.com/bookmark/bmdirect.js&quot;&gt;&lt;/script&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Passive Transformation &lt;/li&gt;    &lt;li&gt;Connected and Unconnected Transformation &lt;/li&gt;    &lt;li&gt;Stored procedures are stored and run within the database. &lt;/li&gt; &lt;/ul&gt;  &lt;p&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;/p&gt;  &lt;p&gt;&lt;b&gt;Use of Stored Procedure in mapping: &lt;/b&gt;&lt;/p&gt;  &lt;ul&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;/ul&gt;  &lt;p&gt;Data Passes Between IS and Stored Procedure 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;/p&gt;  &lt;p&gt;&lt;b&gt;Input/output parameters:&lt;/b&gt; Parameters we give as input and the parameters returned from Stored Procedure. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Return values:&lt;/b&gt; Value returned by Stored Procedure if any. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Status codes:&lt;/b&gt; 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. Specifying when the Stored Procedure Runs &lt;/p&gt;  &lt;p&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;/p&gt;  &lt;p&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;/p&gt;  &lt;p&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;/p&gt;  &lt;p&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;/p&gt;  &lt;p&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;/p&gt;  &lt;p&gt;&lt;strong&gt;Using a Stored Procedure in a Mapping :&lt;/strong&gt;&lt;/p&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;  &lt;p&gt;&lt;b&gt;Stored Procedures:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Connect to Source database and create the stored procedures given below: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;CREATE OR REPLACE procedure sp_agg (in_deptno in number, max_sal out number, &lt;/p&gt;  &lt;p&gt;min_sal out number, avg_sal out number, sum_sal out number) &lt;/p&gt;  &lt;p&gt;As &lt;/p&gt;  &lt;p&gt;Begin &lt;/p&gt;  &lt;p&gt;select max(Sal),min(sal),avg(sal),sum(sal) into max_sal,min_sal,avg_sal,sum_sal &lt;/p&gt;  &lt;p&gt;from emp where deptno=in_deptno group by deptno; &lt;/p&gt;  &lt;p&gt;End; &lt;/p&gt;  &lt;p&gt;/ &lt;/p&gt;  &lt;p&gt;CREATE OR REPLACE procedure sp_unconn_1_value(in_deptno in number, max_sal out number) &lt;/p&gt;  &lt;p&gt;As &lt;/p&gt;  &lt;p&gt;Begin &lt;/p&gt;  &lt;p&gt;Select max(Sal) into max_sal from EMP where deptno=in_deptno; &lt;/p&gt;  &lt;p&gt;End; &lt;/p&gt;  &lt;p&gt;/ &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Connected Stored Procedure T/F&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Example:&lt;/b&gt; To give input as DEPTNO from DEPT table and find the MAX, MIN, AVG and SUM of SAL from EMP table. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DEPT will be source table. Create a target table SP_CONN_EXAMPLE with fields DEPTNO, MAX_SAL, MIN_SAL, AVG_SAL &amp;amp; SUM_SAL. &lt;/li&gt;    &lt;li&gt;Write Stored Procedure in Database first and Create shortcuts as needed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Creating Mapping: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Open folder where we want to create the mapping. &lt;/p&gt;  &lt;p&gt;2. Click Tools -&amp;gt; Mapping Designer. &lt;/p&gt;  &lt;p&gt;3. Click Mapping-&amp;gt; Create-&amp;gt; Give name. Ex: m_SP_CONN_EXAMPLE&lt;/p&gt;  &lt;p&gt;4. Drag DEPT and Target table.&lt;/p&gt;  &lt;p&gt;5. Transformation -&amp;gt; Import Stored Procedure -&amp;gt; Give Database Connection -&amp;gt; Connect -&amp;gt; Select the procedure sp_agg from the list.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRXuMkMnQe4fYC4C9LUzzNS_ch0bXkBFXvCFus5oWU7yAderJB215wo1-qghH_0UBlMtIU1sqobpey-AounTcTyg4L68OPC_2kxM_GEpHfo8Y6DDm5lwLqyvwuZjcHJEQyo-wW7y-OGeEI/s1600-h/clip_image030%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image030&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;413&quot; alt=&quot;clip_image030&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFVIjLMfOapPZ228ySoSalJ6X1SN-Tsi-2fwdA_gdxD4hkSepmXPT71rfwqlN_oLJxDqUxx9-hsa2stR6RontbtQG3SCpOMnjGyKJOn0H9C9r86xcSQ2kKdx5HKwRdO3CDwVtwfWNy_Ias/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqethfaVeas5phxGlKO277EMWjBuRmwoiHuQhL-Huu7IJfCS37j5epGhRO9VnUZ-4xOz6ctv3kXDLAcsB7TdV_RQdkjYdyAeend2tfgwjbJsupvF_ASl1K04Zfpo-BNHLPhgjy9b2qLqF_/s1600-h/clip_image032%5B5%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image032&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;213&quot; alt=&quot;clip_image032&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlb5LldWtn2PfgCOKvyUN1Hvc-aLe6VbVBUDha2iSPUnTPksVeZxzLPmn_bb43PZdmoflvqn6ovZGvv-VHEKlLYUQ7RzAqimxrskgn116YR-hWw8k1bJS9YADL4VyzlhYJ84W510MgWAd2/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;6. Drag DEPTNO from SQ_DEPT to the stored procedure input port and also to DEPTNO port of target. &lt;/p&gt;  &lt;p&gt;7. Connect the ports from procedure to target as shown below: &lt;/p&gt;  &lt;p&gt;8. Mapping -&amp;gt; Validate &lt;/p&gt;  &lt;p&gt;9. Repository -&amp;gt; Save &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create Session and then workflow. &lt;/li&gt;    &lt;li&gt;Give connection information for all tables. &lt;/li&gt;    &lt;li&gt;Give connection information for Stored Procedure also. &lt;/li&gt;    &lt;li&gt;Run workflow and see the result in table. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYtilPsAOC1NGl-Ja_QrvP9PIb93GRfVQVRquv_bwec2EUT_NajP9sb5sBwL91vH0hSCa4YkOcYA0kpVY88Ngfw9GDQp7AYT4JJOOqOTaSkFoBf-pEWdDV2ZnNB9LsTqKMbXmYEzXG38Ws/s1600-h/clip_image034%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image034&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;347&quot; alt=&quot;clip_image034&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbXcz7jpReLICQAKvaL5GGFE1KgetJ1nqy-6zCjxISkQLrxluudHldVuh0veVGcL9DtnZl3z0ZatJYZsWXGsvsrkBwLBRKiDBJYUhB_a-zMuQgcCs6rJiu3e5NKg1v3x5cNM50XhkKuecN/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Unconnected Stored Procedure T/F :&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;An unconnected Stored Procedure transformation is not directly connected to the flow of data through the mapping. Instead, the stored procedure runs either: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;From an expression: Called from an expression transformation. &lt;/li&gt;    &lt;li&gt;Pre- or post-session: Runs before or after a session. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Method of returning the value of output parameters to a port: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Assign the output value to a local variable. &lt;/li&gt;    &lt;li&gt;Assign the output value to the system variable PROC_RESULT. (See Later) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Example 1:&lt;/b&gt; DEPTNO as input and get MAX of Sal as output.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DEPT will be source table. &lt;/li&gt;    &lt;li&gt;Create a target table with fields DEPTNO and MAX_SAL of decimal data type. &lt;/li&gt;    &lt;li&gt;Write Stored Procedure in Database first and Create shortcuts as needed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Creating Mapping: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Open folder where we want to create the mapping.&lt;/p&gt;  &lt;p&gt;2. Click Tools -&amp;gt; Mapping Designer. &lt;/p&gt;  &lt;p&gt;3. Click Mapping-&amp;gt; Create-&amp;gt; Give name. Ex: m_sp_unconn_1_value&lt;/p&gt;  &lt;p&gt;4. Drag DEPT and Target table.&lt;/p&gt;  &lt;p&gt;5. Transformation -&amp;gt; Import Stored Procedure -&amp;gt; Give Database Connection -&amp;gt; Connect -&amp;gt; Select the procedure sp_unconn_1_value from the list. Click OK.&lt;/p&gt;  &lt;p&gt;6. Stored Procedure has been imported.&lt;/p&gt;  &lt;p&gt;7. T/F -&amp;gt; Create Expression T/F. Pass DEPTNO from SQ_DEPT to Expression T/F.&lt;/p&gt;  &lt;p&gt;8. Edit expression and create an output port OUT_MAX_SAL of decimal data type.&lt;/p&gt;  &lt;p&gt;9. Open Expression editor and call the stored procedure as below:Click OK and connect the port from expression to target as in mapping below: &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIwphvXdf2AADNn4iHmH3-BOL7V1WqRAZ46JZZ1I-CyasyrkGerJ29DnEKXNQx-Na1tsASR-IiC2MDt2cnyl61MDqHy7C0TNBj5guXZo5jq-co7i_8SboWAWk_Sb7EssFGCBiNMI2U9yd/s1600-h/clip_image036%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image036&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;190&quot; alt=&quot;clip_image036&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKgcRxVNBykEYiC7vieKucmyUjE3EN1qJbj20s1010Zy-0MgUFV641-b0tZ4jKBXBc3zu_vaW3qvWeNQqqe3Evp-xf0QhcQoj6sU3AqpXj0N2pKxmdH-BjWoQuY-L0gwm1Hr6UurGFNwW/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;10. Mapping -&amp;gt; Validate &lt;/p&gt;  &lt;p&gt;11. Repository Save. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create Session and then workflow. &lt;/li&gt;    &lt;li&gt;Give connection information for all tables. &lt;/li&gt;    &lt;li&gt;Give connection information for Stored Procedure also. &lt;/li&gt;    &lt;li&gt;Run workflow and see the result in table. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;PROC_RESULT use: &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If the stored procedure returns a single output parameter or a return value, we the reserved variable PROC_RESULT as the output variable. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; DEPTNO as Input and MAX Sal as output : &lt;/p&gt;  &lt;p&gt;:SP.SP_UNCONN_1_VALUE(DEPTNO,PROC_RESULT)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If the stored procedure returns multiple output parameters, you must create variables for each output parameter. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; DEPTNO as Input and MAX_SAL, MIN_SAL, AVG_SAL and SUM_SAL &lt;/p&gt;  &lt;p&gt;as output then:&lt;/p&gt;  &lt;p&gt;1. Create four variable ports in expression VAR_MAX_SAL,VAR_MIN_SAL, VAR_AVG_SAL and iVAR_SUM_SAL. &lt;/p&gt;  &lt;p&gt;2. Create four output ports in expression OUT_MAX_SAL, OUT_MIN_SAL, OUT_AVG_SAL and OUT_SUM_SAL. &lt;/p&gt;  &lt;p&gt;3. Call the procedure in last variable port says VAR_SUM_SAL. &lt;/p&gt;  &lt;p&gt;:SP.SP_AGG (DEPTNO, VAR_MAX_SAL,VAR_MIN_SAL, VAR_AVG_SAL, PROC_RESULT) &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Example 2: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;DEPTNO as Input and MAX_SAL, MIN_SAL, AVG_SAL and SUM_SAL as O/P Stored Procedure to drop index in Pre Load of Target Stored Procedure to create index in Post Load of Target&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DEPT will be source table. Create a target table SP_UNCONN_EXAMPLE with fields DEPTNO, MAX_SAL, MIN_SAL, AVG_SAL &amp;amp; SUM_SAL. &lt;/li&gt;    &lt;li&gt;Write Stored Procedure in Database first and Create shortcuts as needed. Stored procedures are given below to drop and create index on target.Make sure to create target table first. Stored Procedures to be created in next example in Target Database: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFvYw7bxKljcREFE1yuzOM_KZazD25ZK536n9Nk_YM0b4CvOWBDjS7OVhO7PgLiVk0YjcwmMS4pX6Oy_VRzxMPUIfZBtBR83HhhURvvIx63dQp7NimR1R8Ydh_wrK0N6l1iiq_ekWioOSM/s1600-h/clip_image007%5B4%5D%5B2%5D.gif&quot;&gt;&lt;img title=&quot;clip_image007[4]&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;1&quot; alt=&quot;clip_image007[4]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1TCPzqtfg-vJj4cXNUYzBWtEYkWKiHD2dvrOAhtWuAYDXReh-ZbAq3dc0so-LkElQKOWhmuSPESR7Njv-MsRK9VA1y7ny3hUlg5L8GFSWZe-PTYHUfQrIm5Tq5d0arleSTb9ph_e7NQ3P/?imgmax=800&quot; width=&quot;240&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7SxqMj2RZDjO1CuYB7Ff-V3fHIz1ieUVkgZvXrwR_vV7zAyAYrA-SIL2XV5aE-o_AL1fnrItaC97V7tL8tMFy24I_KTEfHTiwcwICOweLlLJoQTkylHi7XLHo8oQTGJ2QlKDMicRBGM6/s1600-h/clip_image038%5B5%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image038&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;484&quot; alt=&quot;clip_image038&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhks4uLIjOuIU4K1kha3xJZtLBEpX3tv5lhrcjS4EMErFx9vAVinCUhxmEvXfG0w0rtwKzVG3RzeANfSSihQpRHc3P3wzhieaF_vLldfB8Y7fvGHWMMVQRxdUN4OAxZnB13KeWJIH4gKayJ/?imgmax=800&quot; width=&quot;639&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Create or replace procedure CREATE_INDEX &lt;/p&gt;  &lt;p&gt;As &lt;/p&gt;  &lt;p&gt;Begin &lt;/p&gt;  &lt;p&gt;Execute immediate &#39;create index unconn_dept on SP_UNCONN_EXAMPLE(DEPTNO)&#39;; &lt;/p&gt;  &lt;p&gt;End; &lt;/p&gt;  &lt;p&gt;/&lt;/p&gt;  &lt;p&gt;Create or replace procedure DROP_INDEX &lt;/p&gt;  &lt;p&gt;As &lt;/p&gt;  &lt;p&gt;Begin &lt;/p&gt;  &lt;p&gt;Execute immediate &#39;drop index unconn_dept&#39;; &lt;/p&gt;  &lt;p&gt;End; &lt;/p&gt;  &lt;p&gt;/&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;Creating Mapping: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Open folder where we want to create the mapping.&lt;/p&gt;  &lt;p&gt;2. Click Tools -&amp;gt; Mapping Designer. &lt;/p&gt;  &lt;p&gt;3. Click Mapping-&amp;gt; Create-&amp;gt; Give name. Ex: m_sp_unconn_1_value &lt;/p&gt;  &lt;p&gt;4. Drag DEPT and Target table. &lt;/p&gt;  &lt;p&gt;5. Transformation -&amp;gt; Import Stored Procedure -&amp;gt; Give Database Connection -&amp;gt; Connect -&amp;gt; Select the procedure sp_agg from the list. Click OK. &lt;/p&gt;  &lt;p&gt;6. Stored Procedure has been imported. &lt;/p&gt;  &lt;p&gt;7. T/F -&amp;gt; Create Expression T/F. Pass DEPTNO from SQ_DEPT to Expression T/F. &lt;/p&gt;  &lt;p&gt;8. Edit Expression and create 4 variable ports and 4 output ports as shown below: &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglEmS3fMxylQhEJOgQ5exQ4tHE-RNeGT78KUH6eTigjhIReu8hR3-Jp9XMfGUla1VYJXqR32zWgxdyF0Vt4vSG9ZI8IURijgXhCSOHHcN6SNGkZY2LgMWUyPP6yqBPIBwyspiLLD9fY3ef/s1600-h/clip_image039%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image039&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;310&quot; alt=&quot;clip_image039&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTA64uK8FI5J34OutPApZb251v9pz2livGYevENofLk2xjdEgEfQr0Ij-UkYb1ZYEb8JeTyBRJxaBab8CTK2xIEKmVb7MvsYWvgcWpXT_fWcVY0Qsi1GoN_Qjb0Lr8CyiuXXd1nhMURLWI/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlHEXpmX2s80EipgQbS8eEaF7RwxBJbVbeZxVQ-mgLPHJMY7aVIbjBN5f2HbSW7iHk4uGS8FWn8gmoi43RmPbj0VJfcGf8Z48QHGZrwaUGH9MO3_p7KuKo4J-LpxxBEqcBRSdVoHVCLiH/s1600-h/clip_image041%5B4%5D.jpg&quot;&gt;&lt;img title=&quot;clip_image041&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;213&quot; alt=&quot;clip_image041&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibpvOI79dmhqyBiE7RMDrRD9PrFQpDqAMcVqLsaATJ0wGOP74zzPmsWqfkMhKxmoqjd3d_X2HHTNYeHjr9WWsdHNyhfGiu5HYllDBtqyvQKPFknRURVQMHZz81xuf1peJeG1FSF3I5tpTk/?imgmax=800&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;9. Call the procedure in last variable port VAR_SUM_SAL. &lt;/p&gt;  &lt;p&gt;10. :SP.SP_AGG (DEPTNO, VAR_MAX_SAL, VAR_MIN_SAL, VAR_AVG_SAL, PROC_RESULT) &lt;/p&gt;  &lt;p&gt;11. Click Apply and Ok. &lt;/p&gt;  &lt;p&gt;12. Connect to target table as needed. &lt;/p&gt;  &lt;p&gt;13. Transformation -&amp;gt; Import Stored Procedure -&amp;gt; Give Database Connection for target -&amp;gt; Connect -&amp;gt; Select the procedure CREATE_INDEX and DROP_INDEX from the list. Click OK. &lt;/p&gt;  &lt;p&gt;14. Edit DROP_INDEX -&amp;gt; Properties Tab -&amp;gt; Select Target Pre Load as Stored Procedure Type and in call text write drop_index. Click Apply -&amp;gt; Ok.&lt;/p&gt;  &lt;p&gt;15. Edit CREATE_INDEX -&amp;gt; Properties Tab -&amp;gt; Select Target Post Load as Stored Procedure Type and in call text write create_index. Click Apply -&amp;gt; Ok. &lt;/p&gt;  &lt;p&gt;16. Mapping -&amp;gt; Validate &lt;/p&gt;  &lt;p&gt;17. Repository -&amp;gt; Save &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create Session and then workflow. &lt;/li&gt;    &lt;li&gt;Give connection information for all tables. &lt;/li&gt;    &lt;li&gt;Give connection information for Stored Procedures also. &lt;/li&gt;    &lt;li&gt;Also make sure that you execute the procedure CREATE_INDEX on database before using them in mapping. This is because, if there is no INDEX on target table, DROP_INDEX will fail and Session will also fail. &lt;/li&gt;    &lt;li&gt;Run workflow and see the result in table. &lt;/li&gt; &lt;/ul&gt;  </description><link>http://informaticatutorials-naveen.blogspot.com/2011/04/stored-procedure-tf.html</link><author>noreply@blogger.com (Naveen)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFVIjLMfOapPZ228ySoSalJ6X1SN-Tsi-2fwdA_gdxD4hkSepmXPT71rfwqlN_oLJxDqUxx9-hsa2stR6RontbtQG3SCpOMnjGyKJOn0H9C9r86xcSQ2kKdx5HKwRdO3CDwVtwfWNy_Ias/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>