Advanced Oracle PL/SQL Programming with Packages


Steven Feuerstein's first book, Oracle PL/SQL Programming, has become the classic reference to PL/SQL, Oracle's procedural extension to its SQL language. His new book looks thoroughly at one especially advanced and powerful part of the PL/SQL language — the package. The use of packages can dramatically improve your programming productivity and code quality, while preparing you for object-oriented development in Oracle technology. In this book, Feuerstein explains how to construct packages — and how to build them ...

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (38) from $1.99   
  • New (3) from $30.48   
  • Used (35) from $1.99   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2009

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

1565922387 *BRAND NEW* Ships Same Day or Next!

Ships from: Springfield, VA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Seller since 2008

Feedback rating:


Condition: New

Ships from: fallbrook, CA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Seller since 2014

Feedback rating:


Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Sort by
Sending request ...


Steven Feuerstein's first book, Oracle PL/SQL Programming, has become the classic reference to PL/SQL, Oracle's procedural extension to its SQL language. His new book looks thoroughly at one especially advanced and powerful part of the PL/SQL language — the package. The use of packages can dramatically improve your programming productivity and code quality, while preparing you for object-oriented development in Oracle technology. In this book, Feuerstein explains how to construct packages — and how to build them the right way. His "best practices" for building packages will transform the way you write packages and help you get the most out of the powerful, but often poorly understood, PL/SQL language.

Much more than a book, Advanced Oracle PL/SQL Programming with Packages comes with a PC diskette containing a full-use software companion. Developed by Feuerstein, RevealNet's PL/Vision Lite is the first of its kind for PL/SQL developers: a library of thirty-plus PL/SQL packages. The packages solve a myriad of common programming problems and vastly accelerate the development of modular and maintainable applications.

The packages provided in PL/Vision Lite fall into three categories:

  • Building block packages: low-level development enhancers, including string parsers, a list manager, and an interface to PL/SQL tables.
  • Developer utilities: programs that improve your PL/SQL development environment, including a code generator, a powerful substitute for SHOW ERRORS, and an online help delivery mechanism.
  • Plug-and-play components: pieces of code that can be used as is in your own applications, including a high-level exception handler mechanism and a generic, reusable logging mechanism.

In addition to describing the details of these packages, this book explores why and how they were built the way they were. You'll come away with an increased appreciation of the PL/SQL language and the power of packages. Most importantly, you'll be ready and eager to put that power to use immediately in your own applications.

This book expands on the techniques provided in Oracle PL/SQL Programming, taking readers deep into the world of PL/SQL packages.The book provides much more than advice and examples. It comes with a disk containing a full-use shareware version of PL/Vision, a library of dozens of packages written by the author. These packages greatly accelerate the development of PL/SQL-based applications.

Read More Show Less

Product Details

  • ISBN-13: 9781565922389
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 10/8/1996
  • Series: Nutshell Handbooks Series
  • Pages: 687
  • Product dimensions: 7.20 (w) x 9.36 (h) x 1.78 (d)

Meet the Author

Steven Feuerstein is considered one of the world's leading experts on the Oracle PL/SQL language. He is the author or coauthor of Oracle PL/SQL Programming, Oracle PL/SQL Best Practices, Oracle PL/SQL Programming: Guide to Oracle8i Features, Oracle PL/SQL Developer's Workbook, Oracle Built-in Packages, Advanced Oracle PL/SQL Programming with Packages, and several pocket reference books (all from O'Reilly & Associates). Steven is a Senior Technology Advisor with Quest Software, has been developing software since 1980, and worked for Oracle Corporation from 1987 to 1992.

Read More Show Less

Table of Contents

Objectives of This Book;
Structure of This Book;
Conventions Used in This Book;
About the Disk;
About PL/Vision;
Comments and Questions;
Working With Packages;
Chapter 1: PL/SQL Packages;
1.1 What Is a PL/SQL Package?;
1.2 What Are the Types and Layers of Packages?;
1.3 What Are the Benefits of Packages?;
1.4 Using Packages;
1.5 Types of Packages;
1.6 Building Packages;
Chapter 2: Best Practices for Packages;
2.1 Starting With Packages;
2.2 Using Effective Coding Style for Packages;
2.3 Selecting Package Names;
2.4 Organizing Package Source Code;
2.5 Constructing the Optimal Interface to Your Package;
2.6 Building Flexibility Into Your Packages;
2.7 Building Windows Into Your Packages;
2.8 Overloading for Smart Packages;
2.9 Modularizing for Maintainable Packages;
2.10 Hiding Package Data;
2.11 Simultaneous Construction of Multiple Packages;
Chapter 3: The PL/SQL Development Spiral;
3.1 The Basic Problem;
3.2 Adding Value;
3.3 Supplying Backward Compatibility;
3.4 Improving the User Interface;
3.5 Rough Waters Ahead;
3.6 Building a Structured Function;
3.7 Handling Program Assumptions;
3.8 Broadening the Scope;
3.9 Considering Implementation Options;
3.10 Choosing the Best Performer;
3.11 Don’t Forget Backward Compatibility;
3.12 Obliterating the Literals;
3.13 Glancing Backward, Looking Upward;
PL/Vision Overview;
Chapter 4: Getting Started with PL/Vision;
4.1 What Is PL/Vision?;
4.2 packagesin PL/VisionPL/Vision Package Bundles;
4.3 installingPL/Vision LitePL/VisioninstallingInstallation Instructionss;
4.4 installingPL/Vision help packagespackageshelpdocumentationInstalling Online Help for PL/Vision;
4.5 documentationonline helpUsing Online Help;
4.6 SQL*Plusscripts included on diskfilescreated during installationcodecreated during installationSummary of Files on Disk;
Chapter 5: PL/Vision Package Specifications;
5.1 Common Package Elements;
5.2 p packagep: a DBMS_OUTPUT Substitute;
5.3 PLV: Top-Level Constants and Functions;
5.4 PLVcase: PL/SQL Code Conversion;
5.5 PLVcat: PL/SQL Code Cataloguing;
5.6 PLVchr: Operations on Single Characters;
5.7 PLVcmt: Commit Processing;
5.8 PLVddd: DDL Syntax Dump;
5.9 PLVdyn: Dynamic SQL Operations;
5.10 PLVexc: Exception Handling;
5.11 PLVfile: Operating System I/O Manager;
5.12 PLVfk: Foreign Key Interface;
5.13 PLVgen: PL/SQL Code Generator;
5.14 PLVhlp: Online Help Architechture;
5.15 PLVio: Input/Output Processing;
5.16 PLVlex: Lexical Analysis;
5.17 PLVlog: Logging Facility;
5.18 listsPLVlst package PLVlst: List Manager;
5.19 PLVmsg: Message Handling;
5.20 PLVobj: Object Interface;
5.21 PLVprs: String Parsing;
5.22 PLVprsps: PL/SQL Source Code Parsing;
5.23 PLVrb: Rollback Processing;
5.24 PLVstk: Stack Manager;
5.25 PLVtab: Table Interface;
5.26 PLVtkn: Token Table Interface;
5.27 PLVtmr: Program Performance Analyzer;
5.28 PLVtrc: Trace Facility;
5.29 PLVvu: Code and Error Viewing;
Building Block Packages;
Chapter 6: PLV: Top-Level Constants and Functions;
6.1 NULLsubstitution valuesubstitution value, NULLNull Substitution Value;
6.2 Setting the PL/Vision Date Mask;
6.3 Assertion Routines;
6.4 PLV Utilities;
6.5 typesdatatypestypesThe Predefined Datatypes;
6.6 The Predefined Constants;
Chapter 7: p: A Powerful Substitute for DBMS_OUTPUT;
7.1 p packagell procedureUsing the l Procedure;
7.2 delimiterline separatorline separatorwhitespaceline separatorcharactersline separatorblank lineswhitespaceThe Line Separator;
7.3 stringsoutput prefixI/Ooutput prefixoutput prefixThe Output Prefix;
7.4 p packageoutput fromoutput from p packageI/Op package outputControlling Output from p;
Chapter 8: PLVtab: Easy Access to PL/SQL Tables;
8.1 typestableUsing PLVtab-Based PL/SQL Table Types;
8.2 display functionDisplaying PLVtab Tables;
8.3 togglestable formatheaders, tableShowing Header Toggle;
8.4 Showing Row Number Toggle;
8.5 prefixtable row valuedisplay prefixtablesrow value prefixSetting the Display Prefix;
8.6 empty tablesdeletingtable rowsEmptying Tables with PLVtab;
8.7 Implementing PLVtab.display;
Chapter 9: PLVmsg: Single-Sourcing PL/SQL Message Text;
9.1 PLVmsg Data Structures;
9.2 savingmessage textStoring Message Text;
9.3 Retrieving Message Text;
9.4 The Restriction Toggle;
9.5 Integrating PLVmsg with Error Handling;
9.6 Implementing load_ from_dbms;
Chapter 10: PLVprs, PLVtkn, and PLVprsps: Parsing Strings;
10.1 PLVprs: Useful String Parsing Extensions;
10.2 PLVtkn: Managing PL/SQL Tokens;
10.3 PLVprsps: Parsing PL/SQL Strings;
Chapter 11: PLVobj: A Packaged Interface to ALL_OBJECTS;
11.1 Why PLVobj?;
11.2 ALL_OBJECTS View;
11.3 Setting the Current Object;
11.4 Accessing ALL_OBJECTS;
11.5 Binding Objects to a Dynamic Cursor;
11.6 Populating a PL/SQL Table with Object Names;
11.7 A Programmatic Cursor FOR Loop;
11.8 Tracing PLVobj Activity;
Chapter 12: PLVio: Reading and Writing PL/SQL Source Code;
12.1 Why PLVio?;
12.2 Code Repositories Supported by PLVio;
12.3 Managing the Source Repository;
12.4 The Source WHERE Clause;
12.5 Managing the Target Repository;
12.6 Reading From the Source;
12.7 Writing to the Target;
12.8 Saving and Restoring Settings;
12.9 Cleaning Up Source and Target;
Chapter 13: PLVfile: Reading and Writing Operating System Files;
13.1 A Review of UTL_FILE;
13.2 Specifying the File in PLVfile;
13.3 Creating and Checking Existence of Files;
13.4 Opening and Closing Files;
13.5 Reading From a File;
13.6 Writing to a File;
13.7 Copying File Contents;
13.8 Displaying File Contents;
13.9 Handling File Errors with PLVfile;
13.10 Tracing PLVfile Activity;
Developer Utility Packages;
Chapter 14: PLVtmr: Analyzing Program Performance;
14.1 Toggling the Timer;
14.2 Capturing the Start Time;
14.3 Retrieving and Displaying the Elapsed Time;
14.4 Using PLVtmr in Scripts;
Chapter 15: PLVvu: Viewing Source Code and Compile Errors;
15.1 Compiling PL/SQL Code in SQL*Plus;
15.2 Displaying Compile Errors;
15.3 Displaying Source Code;
15.4 Implementing PLVvu;
Chapter 16: PLVgen: Generating PL/SQL Programs;
16.1 Best PracticesOptions for Best Practices;
16.2 Code Generated by PLVgen;
16.3 Modifying PLVgen Behavior;
16.4 Implementing PLVgen;
Chapter 17: PLVhlp: Online Help for PL/SQL Programs;
17.1 Who Needs Online Help?;
17.2 Current Sources of Information;
17.3 What Is “Online Help” for Stored Code?;
17.4 Using PLVhlp;
17.5 Implementing PLVhlp;
Chapter 18: PLVcase and PLVcat: Converting and Analyzing PL/SQL Code;
18.1 PLVcase: Converting the Case of PL/SQL Programs;
18.2 PLVcat: Cataloguing PL/SQL Source Code;
Plug-and-Play Packages;
Chapter 19: PLVdyn and PLVfk: Dynamic SQL and PL/SQL;
19.1 About Plug-and-Play;
19.2 Declarative Programming in PL/SQL;
19.3 The Dynamic Packages of PL/Vision;
19.4 PLVdyn: A Code Layer over DBMS_SQL;
19.5 DML Operations;
19.6 PLVfk: Generic Foreign Key Lookups;
Chapter 20: PLVcmt and PLVrb: Commit and Rollback Processing;
20.1 PLVcmt: Enhancing Commit Processing;
20.2 PLVrb: Performing Rollbacks;
Chapter 21: PLVlog and PLVtrc: Logging and Tracing;
21.1 PLVlog: Logging Activity in PL/SQL Programs;
21.2 PLVtrc: Tracing Execution of PL/SQL Programs;
Chapter 22: PLVexc: Exception Handling;
22.1 The Challenge of Exception Handling;
22.2 Application-Specific Exception Packages;
22.3 Implementing PLVexc;
Testing Your Knowledge;
Appendix: PL/SQL Exercises;

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)