In earlier editions of this book, the title of this chapter was Inside PL/SQL. I decided to change the name to PL/SQL Architecture for two reasons:
Most of what was in the chapter was not truly in any sense “internals.” In fact, it is very difficult for PL/SQL developers (anyone outside of Oracle headquarters) to get information about “internal” aspects of PL/SQL.
I don’t want to encourage you to try to uncover otherwise hidden aspects of PL/SQL. Developers, I believe, benefit most from learning the syntax of the language, not from trying to “game” or trick the PL/SQL compiler into doing something it wouldn’t do of its own volition.
Having said that, a very common question that touches on the internal structures of the PL/SQL compiler is: “Who or what is DIANA?”
Asking a PL/SQL programmer Who is Diana? is like asking a San Francisco resident Who’s Bart?. The answer to both questions is not so much a who as a what. For the San Francisco Bay Area resident, BART is the Bay Area Rapid Transit system—the subway. For the PL/SQL programmer, DIANA is the Distributed Intermediate Annotated Notation for Ada and is part of PL/SQL’s heritage as an Ada-derived language. In some Ada compilers the output of the first part of the compilation is a DIANA. Likewise, PL/SQL was originally designed to output a DIANA in the first part of the compilation process.
As a PL/SQL programmer, however, you never really see or interact with your program’s DIANA. Oracle Corporation may decide, ...