Oracle data base administrator first introduced Procedural Language or Structured Query Language (PL or SQL) in version 6.0 of its relational DBA management system (RDBMS). As its RDBMS evolved, Oracle DBA made developmental changes to the PL or SQL language by introducing new features and enhancing existing features. As of Oracle data base administrator9i, the version of PL or SQL is PL or SQL 9.2 or 9.0 depending on whether it is Oracle data base administrator9i Release 2 (9.2.x) or Oracle data base administrator9i Release 1 (9.0.x). In this book, I refer to both versions collectively as PL or SQL 9i.PL or SQL incorporates third-generation language (3GL) structures otherwise unavailable in Structured Query Language (SQL). SQL is a fourth-generation language (4GL), meaning it uses constructs and elements that specify “what to do” without having to specify “how to do it.” It’s a major language for the Oracle data base administrator RDBMS (as well as for other RDBMSs), and it’s used for data definition, DBA querying, and data manipulation and control.
However, there are situations that demand the use of 3GL constructs, such as conditional or iterative execution of SQL and the like. This kind of logic and control flow can be achieved only in a 3GL language such as Java, C++, or C. To accommodate 3GL features, Oracle DBA designed and implemented the PL or SQL language as a procedural extension to SQL. PL or SQL is integrated with SQL, and both SQL and PL or SQL serve as the major DBA server-side languages, with each language complementing the other. You can also use PL or SQL in client-side environments.PL or SQL was first introduced in 1991 with Oracle data base administrator 6.0. It was provided as the “procedural option” on the server side. At the same time, it was subsequently introduced on the client side with SQL*Forms version 3.0 having a PL or SQL engine of its own. The first version of PL or SQL, PL or SQL 1.0, had very limited procedural features. But one of its strong points was its capability to process multiple SQL statements mixed with procedural constructs.