when you have partitioning option, then insert data into partitioned table, and make exchange partition.
when no, use cursor with rowid and commit each 10 000 - 500 000 rows.
but check of speed mod function - try replace with some counter variable.
and check, if on updated columns not are indexes
Beer contains just a small amount of vitamines - that's why it's necessary to drink lot of it.