You might consider an INSTEAD-OF trigger and handle the logic of what should happend with the data once inside the trigger. This way, you mount your text file as an external table, and INSERT from that table. Here again, non-trivial pl/sql work involved.