One of the reasons developers like PL/SQL so much is that it’s so easy to write SQL inside a PL/SQL block of code.
One of the most dangerous aspects of PL/SQL is that it’s so easy to write SQL inside a PL/SQL block of code.
Paradox? Irony? SQL is, in fact, a sort of Achilles heel of PL/SQL development. Now, given that PL/SQL was first conceived as a procedural language extension to SQL, such a statement should raise eyebrows even further. The simple fact of the matter, however, is that if you aren’t careful about how you place SQL statements in your PL/SQL code, you will end up with applications that are difficult to optimize, debug, and manage over time.
You should follow several simple (to state) guidelines when working with SQL inside PL/SQL. I collect all of these together in the following meta-best practice of this chapter.