
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.