“BULK COLLECT and FORALL are faster than cursor processing”
Seen in the wild:
SELECT ROWID BULK COLLECT INTO t_rowids FROM my_table WHERE ... FOR UPDATE NOWAIT; IF t_rowids.COUNT > 0 THEN FORALL i IN t_rowids.FIRST..t_rowids.LAST DELETE FROM my_table WHERE ROWID = t_rowids(i); END IF;
Of course, we couldn’t just do a “DELETE FROM my_table WHERE …”, could we…