11.1 What Is PL/SQL?

PL/SQL is a procedural programming language from Oracle that combines the following elements:

  • Logical constructs such as IF-THEN-ELSE and WHILE

  • SQL DML statements, built-in functions, and operators

  • Transaction control statements such as COMMIT and ROLLBACK

  • Cursor control statements

  • Object and collection manipulation statements

Despite its humble origins as a scripting language in Version 6.0, PL/SQL became an integral part of the Oracle server with release 7.0. Because release 7.0 included the ability to compile and store PL/SQL programs within the server, Oracle began using the language to provide server functionality and to assist in database installation and configuration. With the 7.1 release of the server, Oracle added a new feature of particular use to SQL programmers: the ability to call PL/SQL stored functions from SQL statements (more on this later).

Along with the array of new features made available with each release of PL/SQL, Oracle began supplying prefabricated sets of PL/SQL functionality to allow programmers to tackle more sophisticated programming tasks and to help integrate with various Oracle product offerings. These collections of stored procedures and functions, known as Oracle Supplied Packages, allow you to (among other things):

  • Interface with and administer Oracle's Advanced Queueing feature

  • Schedule database tasks for periodic execution

  • Manipulate Oracle large objects (LOBs)

  • Read from and write to external files

  • Interface with Oracle's Advanced Replication features

  • Issue dynamic SQL statements

  • Generate and parse XML files

  • Issue LDAP commands

The ever-expanding feature set of the PL/SQL language combined with the wide array of supplied packages has yielded a powerful database programming environment. Whether you are generating reports, writing data loading scripts, or writing custom applications, there's probably a place for PL/SQL in your project.