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.