Just a quick note of something I ran into at my current assignment. I have to import data from external tables into persistent tables. This proces normally is just inserting data into the table, but sometimes a file can be sent in more than once.
Originally I thought I would add the /*+ APPEND */ hint to the statement to speed things up. This works flawlessly as long as you are just inserting new records. As soon as you try to insert a record which already exists you can hit a unique constraint (or some other constraint) (if defined). So my next idea was to use the LOG ERRORS construction. As soon as you hit an error for a specific record, it will record it in a separate table and continue with the next record.
But…This doesn’t work when combined. As soon as you add the /*+ APPEND */ hint, the LOG ERRORS line seems to be ignored.