Skip to content

“BULK COLLECT and FORALL are faster than cursor processing”

March 18, 2006

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…

About these ads

From → PL/SQL, SQL

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 195 other followers

%d bloggers like this: