In Oracle, you can do Inserts for multiple tables . Create a dummy error registration table
create global temporary table err_dump
(ORA_ERR_NUMBER$ NUMBER,
ORA_ERR_MESG$ VARCHAR2(2000),
ORA_ERR_ROWID$ UROWID(4000),
ORA_ERR_OPTYP$ VARCHAR2(2),
ORA_ERR_TAG$ VARCHAR2(2000));
(col1, col2) parent1 (col3, col4) parent2.
. LOG ERRORS INTO , , , .
INSERT ALL
INTO parent1_table (pt1_id, col1,col2)
VALUES (rn, col1,col2)
LOG ERRORS INTO err_dump REJECT LIMIT 99999999
INTO parent2_table (pt2_id, col3, col4)
VALUES (rn, col3, col4)
LOG ERRORS INTO err_dump REJECT LIMIT 99999999
SELECT rownum rn, col1, col2, col3, col4
FROM MAIN_TABLE;
, MAIN, parent1_table parent2_table, PK, PARENT2_CHILD_TABLE