“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…

Quick Quiz – Sequence NEXTVAL and CURRVAL
Generating test data that matches existing data

Leave a Reply

Your email address will not be published / Required fields are marked *