Most INSERT statements are the single-table variety, but Oracle also supports a multiple-table INSERT statement. With a multitable insert, you can make a single pass through the source data and load the data into more than one table.

[ ALL | FIRST ]
WHEN condition THEN insert_into_clause [values_clause]
[insert_into_clause [values_clause]]...
[WHEN condition THEN insert_into_clause [values_clause]
[insert_into_clause [values_clause]]...
]...
[ELSE insert_into_clause [values_clause]
[insert_into_clause [values_clause]]...
]


If a WHEN condition evaluates to TRUE, the corresponding INTO clause is executed. If no WHEN condition evaluates to TRUE, the ELSE clause is executed. The keyword ALL tells the database to check each WHEN condition. On the other hand, the keyword FIRST tells the database to stop checking WHEN conditions after finding the first TRUE condition.

insert first
when mod( object_id, 2 ) = 1 then into t1 ( x, y ) values (object_id, created )
when mod( object_id, 2 ) = 0 then into t2 ( a, b ) values ( object_id, created )
select object_id, created from all_objects

By using this multitable INSERT statement instead of two separate statements, the code makes a single pass through the all_objects table instead of two and thus loads the data more faster.