
Symbols
| A
| B
| C
| D
| E
| F
| G
| H
| I
| K
| L
| M
| N
| O
| P
| Q
| R
| S
| T
| U
| V
| W
| Y
| Z
Index: P
- p package
- 
  - 2.8.1.1. Supporting many data combinations
  - 4.2.1. Building Blocks
  - 5.2. p: a DBMS_OUTPUT Substitute
  - 7. p: A Powerful Substitute for DBMS_OUTPUT
  - l
: (see l procedure)
  - output from
: 7.4. Controlling Output from p
 
- package libraries
: 1.5.2. Prebuilt Packages
- packages
- 
  - (see also modularizing)
  - A.1.6. Builtin Packages
  - 1.1. What Is a PL/SQL Package?
  - 2.9. Modularizing for Maintainable Packages
  - 5.13.6. Generating a package
  - access to elements
: 1.4.4. Access to Package Elements
  - building
: 1.6. Building Packages
  - built-in
: A.2.6. Builtin Packages
  - codependency
: 2.4.1. Creating Codependent Packages
  - effective coding of
: 2. Best Practices for Packages
  - exception
: (see PLVexc packages)
  - exception section
: 1.6.3.2. The exception section
  - flexibility
: 2.6. Building Flexibility Into Your Packages
  - generating
: 16.2.1. Generating a Package
  - help
: (see documentation)
  - hiding elements of
  
- 
    - 
1.3.1. Enforced Information Hiding
  - 2.7. Building Windows Into Your Packages
    - 2.10. Hiding Package Data
  
 
- in PL/Vision
  
- 
    - 4.2. PL/Vision Package Bundles
    - 4.3.5. Creating the PL/Vision Packages
    - 5. PL/Vision Package Specifications
  
 
- initializing
  
- 
    - 1.6.3. The Initialization Section
    - 1.6.5.2. Asserting the purity level of the initialization section
  
 
- interface
- 
2.5. Constructing the Optimal Interface to Your Package
-  2.10.3. Simplifying Package Interfaces
  
 
- layering
: 2.9. Modularizing for Maintainable Packages
  - memory architecture
: 1.4.3. The Memory-Resident Architecture of Packages
  - memory requirements
: 4.3.2. Storage Requirements
  - multiple, constructing
: 2.11. Simultaneous Construction of Multiple Packages
  - naming
: 2.3. Selecting Package Names
  - online help
: (see PLVhlp package)
  - ordering elements of
: 2.2.1. Choosing the Order of Elements
  - package body
  
- 
    - 1.6. Building Packages
    - 1.6.2. The Package Body
  
 
- package specification
  
- 
    - 1.4.1. The Package Specification
    - 1.6. Building Packages
  
 
- PL/SQL
: 19.2. Declarative Programming in PL/SQL
  - PLVctlg table
: 18.2.2.1. PLVctlg table
  - recompiling
: 2.4. Organizing Package Source Code
  - referencing elements of
: 1.4.2. Referencing Package Elements
  - synonyms for
: 4.3.6. Granting Access to PL/Vision
  - windows in
: 2.7. Building Windows Into Your Packages
  - working with large
: 1.6.4. Working with Large Packages
 
- page size
- 
  - 17.4.2. Setting the Page Size
  - 17.5.6.4. Maintaining the current page variables
- online help
: 5.14.2. Setting the page size
 
- pagesize function
: 17.4.2. Setting the Page Size
- paragraphs
- 
  - 5.21.2. Wrapping long strings into paragraphs 
  - 10.1.4. Wrapping Strings into Paragraphs
 
- parallelization of programs
: 1.5.1.1. Leveraging builtin packages
- parameter list
: 16.2.2.2. A procedure with parameter list and executable code
- PARSE procedure
: 19.5.6.1. Open and parse
- parse tree
: 1.6.4. Working with Large Packages
- parse_delete procedure
- 
  - 5.9.3. Bundled, low-level operations
  - 19.5.6.3. Parse for delete
 
- parse_name procedure
- 
  - 5.11.13. Miscellaneous operations
  - 13.2.3. Parsing the File Name
 
- parsing
- 
  - code
: 5.22. PLVprsps: PL/SQL Source Code Parsing
  - delimiter, defining
: 10.1.2. Customizing the Delimiter Set
  - file name
: 13.2.3. Parsing the File Name
  - PL/SQL code
: 10.3.2. Parsing PL/SQL Code
  - program names
: 11.3.2. Converting the Program Name
  - strings
  
- 
    - 5.16. PLVlex: Lexical Analysis
    - 5.21. PLVprs: String Parsing
    - 10. PLVprs, PLVtkn, and PLVprsps: Parsing Strings
  
 
 
- partial installation
: 4.4.4. A Warning About Partial Installation 
- pauding programs
: 5.3.6. Miscellaneous programs
- pause procedure
- 
  - 5.3.6. Miscellaneous programs
  - 6.4.4. Pausing Your Program
 
- pausing
help text
 (see more procedure)
- pausing programs
- 
- 6.4.4. Pausing Your Program
- A.2.6. Builtin Packages
 
- perform_commit procedure
- 
  - 5.7.3. Performing commits
  - 20.1.2. The COMMIT Substitute
 
- perform_rollback function
- 5.23.3. Performing rollbacks
- 20.2.4. Performing Rollbacks
 
- performance
- 
  - A.2.6. Builtin Packages
  - 1.3.6. Performance Improvement
  - 3.10. Choosing the Best Performer
  - 5.27.6. Calibration and timing scripts
  - 14. PLVtmr: Analyzing Program Performance
  - dynamic PL/SQL
: 19.5.5.3. The overhead of dynamic PL/SQL
  - package size
: 1.6.4. Working with Large Packages
 
- permissions
: (see access)
- persistence
- 
  - 1.3.4. Object Persistence
  - 1.6.1.3. Need global data structures for your PL/SQL programs
 
- pinning code into memory
: 1.4.3.1. Managing packages in shared memory
- pkg procedure
- 
  - 5.13.6. Generating a package
  - 16.2.1. Generating a Package
 
- pky procedure
: 5.8.3. Dumping the DDL
- PL/SQL
- 
  - call stack
: 21.2.2. Accessing the PL/SQL Call Stack
  - code, parsing
: 10.3.2. Parsing PL/SQL Code
  - declarative programming
: 19.2. Declarative Programming in PL/SQL
  - dynamic code
: 19.5.5. Executing Dynamic PL/SQL Code
  - objects
: 11.  PLVobj: A Packaged Interface to ALL_OBJECTS
  - performance and
: 19.5.5.3. The overhead of dynamic PL/SQL
  - reserved words
: 5.26. PLVtkn: Token Table Interface
  - source code repositories
: 12. PLVio: Reading and Writing PL/SQL Source Code
- tokens
: (see reserved words)
 
- PL/Vision
: 4.1. What Is PL/Vision?
- 
  - bindobj procedure in
: 11.5.3. Using bindobj in PL/Vision
  - cataloging
: 18.2.3.4. Cataloguing PL/Vision
  - enhancing PLVexc with
: 22.3.4. Revamping the PLVexc Package
  - installing
: 4.3. Installation Instructions
  - logging
: (see logging)
  - loopexec procedure in
: 11.7.4. Applying loopexec in PL/Vision
  - packages of
  
- 
    - 4.2. PL/Vision Package Bundles
    - 4.3.5. Creating the PL/Vision Packages
    - 5. PL/Vision Package Specifications
  
 
- PLVgen and
: 16.4.6. Leveraging PL/Vision in PLVgen
  - PLVmsg with
: 9.5.1. Using PLVmsg in PL/Vision 
  - sharing among users
: 4.3.6. Granting Access to PL/Vision
  - tracing
: (see tracing)
 
- PL/Vision Lite
: 4.2. PL/Vision Package Bundles
- placeholder function
: 5.9.7. Miscellaneous programs
- plsql procedure
- 
  - 5.8.3. Dumping the DDL
  - 5.9.6. Executing dynamic PL/SQL
  - 19.5.5. Executing Dynamic PL/SQL Code
 
- plsql_block function
- 
  - 5.9.7. Miscellaneous programs
  - 19.5.5.1. Implementation of PLVdyn.plsql
 
- plsql_delimiters constant
- 
  - 5.21.1. Package constants
  - 10.1.2. Customizing the Delimiter Set
 
- plsql_identifier variable
- 
  - 5.3.2. Anchoring datatypes
  - 6.5. The Predefined Datatypes
  - 19.5.5.2. Scope of a dynamic PL/SQL block
 
- plsql_string procedure
- 
  - 5.22.3. Parsing PL/SQL source code
  - 10.3.2.1. plsql_string procedure
 
- plug-and-play packages
- 
  - 4.2.3. Plug-and-Play Components
  - 19. PLVdyn and PLVfk: Dynamic SQL and PL/SQL
 
- PLV package
: 4.2.1. Building Blocks
- 
  - constants and functions
: 6. PLV: Top-Level Constants and Functions 
 
- PLV_token table
: 10.2.1. Keeping Track of PL/SQL Keywords
- PLVcase package
- 
  - 4.2.2. Developer Utilities
  - 5.4. PLVcase: PL/SQL Code Conversion
  - 18.1. PLVcase: Converting the Case of PL/SQL Programs
 
- PLVcat package
- 
  - 4.2.2. Developer Utilities
  - 5.5. PLVcat: PL/SQL Code Cataloguing
  - 10.3.1. Selecting Token Types for Parsing
  - 18.2. PLVcat: Cataloguing PL/SQL Source Code
  - references and dependencies
: 18.2.4. Identifying References and Dependencies
 
- plvcat.sql script
: 18.2.3.4. Cataloguing PL/Vision
- PLVchar package
: 4.2.1. Building Blocks
- PLVchr package
: 5.6. PLVchr: Operations on Single Characters
- PLVcmt package
- 
  - 4.2.3. Plug-and-Play Components
  - 5.7. PLVcmt: Commit Processing
  - 20.1. PLVcmt: Enhancing Commit Processing
  - 21.1.2.1. Using put_line
 
- PLVctlg table
: 18.2.2. The PLVcat Database Tables
- PLVddd package
- 
  - 4.2.2. Developer Utilities
  - 5.8. PLVddd: DDL Syntax Dump
 
- PLVdyn package
- 
  - 2.7. Building Windows Into Your Packages
  - 4.2.3. Plug-and-Play Components
  - 4.4.1. Special Handling for PLVdyn
  - 5.9. PLVdyn: Dynamic SQL Operations
  - 19.4. PLVdyn: A Code Layer over DBMS_SQL
  - compiling code with
: 19.4.1.7. Compiling source code with PLVdyn
  - displaying table contents
: 19.5.7. Displaying a Table
  - schemas and
: 19.5.10. Executing PLVdyn in Different Schemas
 
- PLVdyn1 package
: 4.2.3. Plug-and-Play Components
- PLVexc package
- 
  - 4.2.3. Plug-and-Play Components
  - 5.10. PLVexc: Exception Handling
  - 16.3.5. Using the PLVexc Exception Handler
  - 19.1. About Plug-and-Play
  - 21.1.2.1. Using put_line
  - 22. Exception Handling
  - enhancing with PL/Vision
: 22.3.4. Revamping the PLVexc Package
  - PLVlog package and
: 22.3.4.1. Leveraging PLVLog 
  - PLVmsg with
: 9.5. Integrating PLVmsg with Error Handling
  - PLVtrc package and
: 22.1.6.5. Integrating PLVexc with PLVtrc 
 
- PLVfile package
- 
  - 4.2.1. Building Blocks
  - 5.11. PLVfile: Operating System I/O Manager
  - 13. PLVfile: Reading and Writing Operating System Files
 
- PLVfk package
- 
  - 4.2.3. Plug-and-Play Components
  - 5.12. PLVfk: Foreign Key Interface
  - 19.6. PLVfk: Generic Foreign Key Lookups
 
- PLVgen package
- 
  - 2.2. Using Effective Coding Style for Packages
  - 2.6.2. Toggles for Code Generation
  - 4.2.2. Developer Utilities
  - 5.13. PLVgen: PL/SQL Code Generator
  - 16. PLVgen: Generating PL/SQL Programs
  - overloading in
: 16.4.4. Overloading in PLVgen
 
- plvgrant.sql script 
: 4.3.6. Granting Access to PL/Vision
- PLVhlp
: 4.2.2. Developer Utilities
- PLVhlp  package
: 5.1. Common Package Elements
- PLVhlp package
- 
  - 4.4. Installing Online Help for PL/Vision
  - 4.5. Using Online Help
  - 5.14. PLVhlp: Online Help Architechture
  - 12.1. Why PLVio?
  - 16.2.5.1. Generating help text stubs
  - 17. PLVhlp: Online Help for PL/SQL Programs
 
- plvins23.sql script 
: 4.3.5. Creating the PL/Vision Packages
- plvinst.sql script
: 4.3.5. Creating the PL/Vision Packages
- PLVio package
- 
  - 4.2.1. Building Blocks
  - 5.15. PLVio: Input/Output Processing
  - 12. PLVio: Reading and Writing PL/SQL Source Code
  - PLVhlp package and
: 17.5.5. Constructing an Online Help Package
 
- PLVlex package
- 
  - 4.2.1. Building Blocks
  - 5.16. PLVlex: Lexical Analysis
 
- PLVlog package
- 
  - 2.6.3. Changing Package Behavior Without Changing the Application
  - 4.2.3. Plug-and-Play Components
  - 5.17. PLVlog: Logging Facility
  - 21.1. PLVlog: Logging Activity in PL/SQL Programs
  - PLVexc package and
  
- 
    - 22.1.7.1. Logging errors
    - 22.3.4.1. Leveraging PLVLog 
  
 
- rollbacks
: 21.1.5. Rolling Back with PLVlog
 
- PLVlst package
- 
  - 4.2.1. Building Blocks
  - 5.18. PLVlst: List Manager
 
- PLVmsg package
- 
  - 4.2.1. Building Blocks
  - 5.19. PLVmsg: Message Handling
  - 9. PLVmsg: Single-Sourcing PL/SQL Message Text
  - 22.1.6.4. Defining error messages with PLVmsg
 
- PLVobj package
- 
  - 4.2.1. Building Blocks
  - 5.20. PLVobj: Object Interface
  - 11.  PLVobj: A Packaged Interface to ALL_OBJECTS
 
- PLVprs package
- 
  - 4.2.1. Building Blocks
  - 5.21. PLVprs: String Parsing
  - 10.1. PLVprs: Useful String Parsing Extensions
 
- PLVprsps
: 4.2.1. Building Blocks
- PLVprsps package
: 10.3. PLVprsps: Parsing PL/SQL Strings
- plvpsyn.sql script
: 4.3.6. Granting Access to PL/Vision
- PLVrb package
- 
  - 4.2.3. Plug-and-Play Components
  - 5.23. PLVrb: Rollback Processing
  - 20.2. PLVrb: Performing Rollbacks
 
- PLVrfrnc table
: 18.2.4.1. Examining the references
- PLVstk package
- 
  - 4.2.1. Building Blocks
  - 5.24. PLVstk: Stack Manager
 
- PLVtab package
- 
  - 2.6. Building Flexibility Into Your Packages
  - 2.8.1.1. Supporting many data combinations
  - 4.2.1. Building Blocks
  - 5.25. PLVtab: Table Interface
  - 8. PLVtab: Easy Access to PL/SQL Tables
 
- PLVtkn package
- 
  - 4.2.1. Building Blocks
  - 5.26. PLVtkn: Token Table Interface
  - 10.2. PLVtkn: Managing PL/SQL Tokens
 
- PLVtmr package
- 
  - 4.2.2. Developer Utilities
  - 5.27. PLVtmr: Program Performance Analyzer
  - 14. PLVtmr: Analyzing Program Performance
  - 16.2.9. Generating a Timer Script
  - 18.2.3.3. Examining the catalogue
  - 19.5.5.3. The overhead of dynamic PL/SQL
 
- PLVtrc package
- 
  - 4.2.3. Plug-and-Play Components
  - 5.28. PLVtrc: Trace Facility
  - 16.3.4. Using the Program Trace 
  - 21.2. PLVtrc: Tracing Execution of PL/SQL Programs
  - PLVexc package and
: 22.1.6.5. Integrating PLVexc with PLVtrc 
 
- PLVvu package
- 
  - 4.2.2. Developer Utilities
  - 5.29. PLVvu: Code and Error Viewing 
  - 15. PLVvu: Viewing Source Code and Compile Errors
  - 17.2. Current Sources of Information
 
- pop procedure
: 5.24.3. Modifying stack contents
- post-insert savepoint
: 21.1.5.7. Setting the post-insert savepoint
- pragmas
: 1.6.5.1. RESTRICT_REFERENCES pragma
- 
  - EXCEPTION_INIT
: 5.10.2. Package-based exceptions
 
- prebuilt packages
: 1.5.2. Prebuilt Packages
- predefined exceptions
: 22.1.3. Impact of Predefined Exceptions
- prefix
table row value
: 8.5. Setting the Display Prefix
- prefix function
- 
  - 5.2.3. Setting the line prefix
  - 5.25.6. Setting the row prefix
 
- prefixes to package element names
: 2.3.3. Avoiding Superfluous Naming Elements
- prependitem procedure
: 5.18.3. Modifying list contents 
- prevmod function
- 
  - 5.28.6. Tracing PL/SQL code execution
  - 21.2.4.4. Previous module
 
- private
PL/Vision package synonyms
: 4.3.6. Granting Access to PL/Vision
- private elements
- 
  - 1.4.4.1. Public and private data
  - 2.7. Building Windows Into Your Packages
  - 2.10. Hiding Package Data
  - declaring before public
: 2.2.1. Choosing the Order of Elements
  - package elements
  
- 
    - 1.3.1. Enforced Information Hiding
    - 1.4.4. Access to Package Elements
  
 
 
- privileges, DDL execution
: 19.4.1. DDL Operations 
- proc procedure
- 
  - 5.13.7. Generating a procedure
  - 16.2.2. Generating a Procedure
  - 16.4.2. Implementing the Procedure Generator
 
- procedures
: (see functions)
- 
  - execute authority
: 1.3.5. Guaranteeing Transaction Integrity
  - generating
  
- 
    - 16.2.2. Generating a Procedure
    - 16.4.2. Implementing the Procedure Generator
  
 
- help
: 16.2.5.2. Generating a help procedure
 
- process_halted exception
- 
  - 5.10.2. Package-based exceptions
  - 22.1.10. Bailing Out with PLVexc
  - 22.1.2. Package-Based Exceptions
 
- productivity
: 4.1.1. The Benefits of PL/Vision
- programming technique
- 
  - A. Appendix: PL/SQL Exercises
  - 1.2.1. The Iceberg Approach to Coding
  - 10.1.3.6. numinstr function
  - analyzing performance
: (see performance)
  - avoiding hard-coded literals
: 3.12. Obliterating the Literals
  - avoiding redundancy
: (see redundancy)
  - backward compatibility
  
- 
    - 3.3. Supplying Backward Compatibility
    - 3.11. Don't Forget Backward Compatibility
  
 
- coding packages
: 2. Best Practices for Packages
  - consistent error data
: 22.2.1.1. Recording consistent error data
  - cover package
: 1.6.4. Working with Large Packages
  - declarative programming
: 19.2. Declarative Programming in PL/SQL
  - handling exceptions
: 22.3.1. Analyzing the Need
  - handling fatal errors
: 22.1.10. Bailing Out with PLVexc
  - hard-coded transaction processing
: 20.1.1. Who Needs PLVcmt?
  - logging
: (see logging)
  - modularizing
: 2.9. Modularizing for Maintainable Packages
  - object-oriented design
: 1.3.2. Object-Oriented Design
  - overloading
: 2.8.1. When to Overload
  - simultaneous package construction
: 2.11. Simultaneous Construction of Multiple Packages
  - testing/debugging
: 2.6.3.1. The test/debug cycle in PL/SQL
  - toggles
: 2.6.1. Toggling Package Behavior
  - top-down design
: 1.3.3. Top-Down Design
  - user interface
: 3.4. Improving the User Interface
  - using package initialization section
: 1.6.3.1. When to use the initialization section
  - using packages
: 1.6.1. When Should You Build a Package?
  - windows
: 2.7. Building Windows Into Your Packages
 
- programs
: (see code)
- ps2db procedure
- 
  - 5.17.6. Managing the log 
  - 21.1.4.3. Transferring a PL/SQL table log to a database table
 
- ps_callstack function
- 
  - 5.28.5. Accessing the PL/SQL call stack
  - 21.2.2. Accessing the PL/SQL Call Stack
 
- ps_module function
- 
  - 5.28.5. Accessing the PL/SQL call stack
  - 21.2.2. Accessing the PL/SQL Call Stack
 
- psformat procedure
: 4.1.2. The Origins of PL/Vision
- pstab constant
: 5.3.1. PL/Vision constants
- pstab2file procedure
- 
  - 5.11.11. Copying a file
  - 13.7.4. Copying PL/SQL Table to File
 
- pstab_count function
- 
  - 5.17.6. Managing the log 
  - 21.1.4.1. Counting and clearing the PL/SQL table
 
- public
PL/Vision package synonyms
: 4.3.6. Granting Access to PL/Vision
- public data
package elements
: 1.4.4. Access to Package Elements
- public elements
- 
  - 1.4.4.1. Public and private data
  - 2.7. Building Windows Into Your Packages
  - 2.10. Hiding Package Data
  - 2.10.4. When to Make Data Public
  - anchored declarations
: 2.10.5. Anchoring to Public Variables
  - declaring before private
: 2.2.1. Choosing the Order of Elements
  - package elements
  
- 
    - 1.3.1. Enforced Information Hiding
    - 1.4.1. The Package Specification
  
 
 
- purity levels
: 1.6.5.1. RESTRICT_REFERENCES pragma
- push procedure
: 5.24.3. Modifying stack contents
- PUT_LINE package
- 
  - (see also p package)
  - 
7. p: A Powerful Substitute for DBMS_OUTPUT
- 5.2. p: a DBMS_OUTPUT Substitute
 
- put_line procedure
- 
  - 5.11.10. Writing to a file
  - 5.15.7. Reading and writing lines
  - 5.17.4. Writing to the log 
  - 12.7. Writing to the Target
  - 13.6. Writing to a File
  - 16.4.3. put_line Procedure
  - 21.1.2. Writing to the Log
  - specifying rollbacks
: 21.1.5.5. Specifying rollbacks when calling put_line
 
- PUT_LINE procedure
: 2.8.1.1. Supporting many data combinations
- put_line repository
: 12.7.3. Displaying the Target Repository
Symbols
| A
| B
| C
| D
| E
| F
| G
| H
| I
| K
| L
| M
| N
| O
| P
| Q
| R
| S
| T
| U
| V
| W
| Y
| Z
 
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.