Yesterday I attended a conference sponsored by Oracle where Tom Kyte gave two presentations.
I learned about a new feature in V10.2 that I previously did not know about.
Below is now legal SQL.
INSERT /*+ APPEND PARALLEL */
INTO sales SELECT product_id, customer_id, TRUNC(sales_date), 3,
promotion_id, quantity, amount
LOG ERRORS INTO sales_activity_errors('load_20040802') REJECT LIMIT UNLIMITED
The last line will insert into "sales_activity_errors" the records which failed
& it will report why that particular record failed to INSERT.
DBMS_ERRLOG is a new procedure that creates the error logging table used by the LOG ERRORS INTO clause.
This approach should only be used when less than 1% of the records fail.