To save from having to rollback an entire bulk insert or multiple inserts you can add a err$ table
Example:
BEGIN
DBMS_ERRLOG.create_error_log (dml_table_name => 'TBLORDERS');
END;
forall i in vOrder_id.first .. vOrder_id.last
INSERT /*+ APPEND */ INTO TBLORDERS (order_id)
values (vOrder_id(i));
LOG ERRORS INTO err$_TBLORDERS ('INSERT') REJECT LIMIT UNLIMITED;
select * from err$_TBLORDERS;