I am very much a novice in using Oracle Data Integrator. I've been assigned a small project with my employer to make the necessary modification(s) to an existing ODI flow and I'm stumped on how/where to do this.

I'm very familiar with the SQL Server ETL tool (SQL Server Integration Services), but again, unfortunately not familiar with the Oracle ODI suite.

Basically, we have a raw file that's provided to our organization several times per year. This raw file contains approx. 6 email-related columns. In more recent raw files that we've been provided, it's become apparent that the provider of these raw files has removed the email-related data from a lot of the 5 or 6 different email-related fields present in the raw file.

We currently have a large number of email addresses present in our Oracle database table from previously ODI-processed raw files from when these email addresses were still being provided in the raw file.

What I'd like to do, going forward with ongoing raw files provided to us, in the mapping between the raw file and the table... if records in the raw file are found to already exist in the Oracle table and therefore just an update of an existing record in the Oracle table is needed, I don't want to override existing non-null values in the 5-6 email-related Oracle table columns with what is increasingly a NULL email value in the 5-6 email-related fields present in the raw file. I want to preserve the email-related data that we have as opposed to updating records with null email values.

I have no idea how/where to implement this logic. Knowledge module? Some sort of adjustment that can be made to implement this logic in the ODI mapping between the raw file and the Oracle table? I'm at a loss and again, have never worked with ODI until now.

Much appreciation if anyone can point me in the right direction for this seemingly simplistic task.