Author: Steven Feuerstein with Bill Prybil
Publisher: O'Reilly, 2014
Aimed at: Oracle developers
Reviewed by: Kay Ewbank
This is a new edition of Steven Feuerstein’s classic book on Oracle PL/SQL programming.
As such it needs little or no introduction to the Oracle developer community; it would be unusual to find a bookshelf belonging to an Oracle developer without this book on it, and it deserves its place, having been probably the best book on the subject for the last twenty years. This latest edition brings the book up to date with Oracle Database 12c Release 1.
This is no light read, either in length or in content. It’s not a tutorial by any means, but Feuerstein explains the inner workings of PL/SQL with lots of code examples. He has an excellent writing style and uses humor and an easy chatty style to make the process of understanding PL/SQL as painless as possible. Over the years and editions different authors have co-authored with Feuerstein; this edition is written with Bill Prybil, though in fact various chapters have been authored or co-authored by different writers, each taking their own area of expertise. One point to note is that Feuerstein does assume you know Oracle’s version of SQL, so if you’re coming to the book from a different background such as T-SQL, you’ll need to get up to speed with Oracle SQL first to make the most of this book.
If you’re not familiar with the book, the important thing is that it covers everything from the fundamentals of the language through program structure, dealing with data, SQL in PL/SQL, constructing applications, to advanced PL/SQL topics such as application security and using Java from PL/SQL. There are extensive suggestions on how to write good code, hints on where problems might occur, and suggestions of ways to optimize your solutions. Once the language has been introduced in the first parts of the book, later chapters look more at specific problems and show how to solve them with descriptions and discussion of why a particular route has been chosen. In many cases you’re shown an example written in one way, then changed to make use of a specific feature or concept to show you how it alters the way you work and how you code for it.
The main changes between this edition and the previous one are information on the changes to Oracle 12C, starting with the ACCESSIBLE_BY clause, which specifies which program units in a package are allowed to invoke subprograms. This means subprograms are effectively hidden from all other program units unless you say otherwise.
Another change that’s covered is BEQUEATH CURRENT_USER for views. This means you can grant roles to individual PL/SQL packages and standalone programs. BEQUEATH CURRENT_USER acts as though it were an invoker rights unit.
The new conditional compilation directives are explained, as are the two new ways of improving PL/SQL function performance – WITH FUNCTION and adding the UDF pragma to the program unit.
As you can probably tell from this list, the changes from the previous edition are quite specific and unless you’re struggling with understanding them in particular, you may be happy with your fifth edition. If you don’t have an earlier edition and you want to program PL/SQL, this is the book to buy.