If it's a one-time thing, MSAccess works really well. Just import the data into an Access table, then create a link to your table in Oracle (using ODBC) and then run an Append query, pushing the local Access table data into your Oracle table.
If it's going to be a regular thing, my preference is to create an EXTERNAL TABLE (an Oracle construct which allows you to reference a file external to the database instance, and define it as a table). Then, you just have to build a procedure which
insert into <real table>
select * from <external table>
SQL Loader works also, we've just never used it here.
The idea is ... once you've set up the external table, then what you do with the data is up to you. The same tools you've always had available are there, since you access the data in your flat file using SQL. Doesn't matter how many tables you're inserting into.
insert into tableA
select * from my_external_table where type = 'A';
insert into tableB
select distinct code, description from my_external_table where type = 'B';