Oracle and PL/SQL Recipes: A Problem-Solution Approach - Juneau, Josh (Apress, 2012)
Oracle Database is one of the most advanced relational databases available. It includes technologies that empower you to work with your data in ways that no other database offers. In the early days of Oracle Database, Structured Query Language (SQL) was used to work directly with the data, but as time went on, people turned to other languages outside the database for performing more sophisticated tasks with data. Although these procedural languages offered a powerful way to harness data, developers and database administrators wanted a language that was easier to use and bound more closely to the data. Oracle Corporation addressed that need by introducing Procedural Language/Structured Query Language (PL/SQL) into Oracle Database in release 7. This language offered the best of both worlds, allowing developers and database administrators to work directly with data via SQL and perform routine programming tasks within the database. The PL/SQL programming language was influenced by the Ada programming language. In fact, the syntax is much the same as Ada. When PL/SQL was originated, it contained many constructs that are available in other languages, including variables and arrays. In Oracle Database 8, the language began to take on more of an object-oriented dialect, allowing developers to create types and develop applications in a way that was more in tune with other modern-day languages. The language continues to grow, adding new features with each release of Oracle Database and making PL/SQL an essential tool for anyone programming against an Oracle Database. PL/SQL can be quite powerful for performing routine database tasks such as creating, returning, updating, and deleting records. However, its capabilities go far beyond performing the routine tasks. Database administrators can use PL/SQL to create powerful database procedures and queries among other things, and developers can use it for developing sophisticated web-based applications, working with stored Java classes, and much more.