Not being an expert at PL/SQL myself -- and not knowing what sort of database you're talking about (what sort of database
are you talking about? that might matter...) -- I'd consider two ways of handling this, depending on the size of the database:
- if it's not very big (say, up to some thousands of rows), start by reading all the values of "$Control" that are currently present in the database, and storing these as keys of a hash -- e.g. if you "select" all values of that field into @Control, then $hash{$_}++ for (@Control);
- if it's a very big database, figure out a quick/easy query to look for a given value of $Control in your DB, and just do that for every input record you process.
In either case, as you process your input file data, if the given value of $Control exists/is found, then execute an update, else execute an insert.
If you need more details about how to do that, you should give more details about what you're using and what you've tried so far.