Skip to Main Content

Explore Oracle PL/SQL

Free tips and training every month! Subscribe for reminders and more from Office Hours. FAQ

Header container

October 2, 2018

Bulk Processing with FORALL and BULK COLLECT
"Row by row = slow by slow" - one of Tom Kyte's more famous and catchy memes. Row by row processing of data is so not the way to go. How to avoid it? Fully leverage SQL to do set processing and if that doesn't totally do it for you, then "fall back" on FORALL and BULK COLLECT. These are just about the most important performance features of PL/SQL, and so we take a close look in our October Office Hours session.


00:30 Introduction, review of Office Hours program
03:32 Why is bulk processing needed?
10:19 BULK COLLECT to retrieve > 1 row with each fetch
15:25 FORALL for repeated execution of non-query DML
30:13 Converting row-by-row to bulk processing

Then on to Q & A.

39:27 How can I convince developers of the performance benefit of BULK COLLECT?
42:00 Use global temporary tables + SQL instead of FORALL?

Subscribe to give us feedback and be notified of upcoming sessions!

Ask a Question

Ask The Experts - Right Now!

Do you have a question about Bulk Processing with FORALL and BULK COLLECT. you'd like our experts to answer in their next session? Sign in and submit it here.

Please note that we cannot guarantee to answer all questions. We cannot help you with open Service Requests or account/licensing issues.


Your Experts
Steven Feuerstein
Steven Feuerstein, Developer Advocate for PL/SQL    
Steven Feuerstein leads a team of Developer Advocate at Oracle Corporation, and is obsessed with the Oracle PL/SQL language, having written ten books on it (all published by O'Reilly Media). He's published over 1400 quizzes on PL/SQL at the Oracle Dev Gym.