Simultaneous execution of PLSQL programs

Test Your PL/SQL Knowledge

This puzzler has come from Steven Feuerstein for the month of January 2008. So I thought to reproduce the puzzler with its answer:

Answer the following multiple choice question to see how well you understand the nuances of PL/SQL:

Which of the following do not help you execute multiple PL/SQL programs simultaneously?

  1. Oracle Advanced Queuing
  2. DBMS_JOB
  3. DBMS_SQL
  4. Pipelined Functions

Now for the answer scroll down:

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Answer: (c) DBMS_SQL. Both Advanced Queuing and DBMS_JOB provide mechanisms for communicating with other sessions, thereby allowing you to "kick off" multiple PL/SQL programs at the same time. Pipelined functions are a special type of table functions: functions that can be called in the FROM clause of a query. If you include the PARALLEL_ENABLE clause in the header of a pipelined function, then the Parallel Query engine will be able to run multiple instances of that same function simultaneously on different processors.

DBMS_SQL, on the other hand, simply allows you to execute SQL statements that are constructed dynamically, at run-time. It does not contain any parallelization or process-spawning capabilities.

Sounds Interesting???

Steven Feuerstein is considered one of the world's leading experts on the Oracle PL/SQL language, having written ten books on PL/SQL all published by O'Reilly Media, including Oracle PL/SQL Programming and Oracle PL/SQL Best Practices (all from O'Reilly Media).

Steven has been developing software since 1980, spent five years with Oracle (1987-1992), and serves as a PL/SQL Evangelist to Quest Software.  

He publishes puzzlers every month and here is where you can see all of them.