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?
- Oracle Advanced Queuing
- DBMS_JOB
- DBMS_SQL
- 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.