Overview about the main differences between direct path loads and bulk loads.
Direct path load (insert /*+append*/ as select…)
- very fast (especially if no indexes on the target table)
- always loads ABOVE the high water mark, so any existing free space not reclaimed
- locks the object
- you must commit/rollback at completion
Bulk Load (bulk collect into/forall insert)
- fast (better than row at a time), but not as fast as direct load
- can utilise existing free space
- does not lock the object
- additional work can be done in same transaction
Found by asktom.