What version of Oracle are you on? In 9i you could re-define the SQL*Loader routine as an external table anduse a MERGE statement to do all this in one step.