You are previewing Oracle Database 12c PL/SQL Programming.
O'Reilly logo
Oracle Database 12c PL/SQL Programming

Book Description

Master Oracle Database 12c PL/SQL Application Development

Develop, debug, and administer robust database programs. Filled with detailed examples and expert strategies from an Oracle ACE, Oracle Database 12c PL/SQL Programming explains how to retrieve and process data, write PL/SQL statements, execute effective queries, incorporate PHP and Java, and work with dynamic SQL. Code testing, security, and object-oriented programming techniques are fully covered in this comprehensive Oracle Press guide.

  • Explore new SQL and PL/SQL features in Oracle Database 12c
  • Build control structures, cursors, and loop statements
  • Work with collections, varrays, tables, and associative array collections
  • Locate and repair errors and employ exception handlers
  • Execute black box, white box, and integration tests
  • Configure and manage stored packages and libraries
  • Handle security with authentication and encryption
  • Use LOBs to store text and multimedia content
  • Write and implement PL/SQL and Java triggers
  • Extend functionality using dynamic SQL statements
  • Understand object types, nested tables, and unnesting queries

Table of Contents

  1. Cover 
  2. Title Page
  3. Copyright Page
  4. About the Author
    1. About the Contributing Author
      1. About the Technical Editor
  5. Contents at a Glance
  6. Contents 
  7. Acknowledgments
  8. Introduction
    1. Book Outline
      1. Part I: PL/SQL Fundamentals
      2. Part II: PL/SQL Programming
      3. Part III: Appendixes and Glossary
    2. Lexicon
      1. SQL Lexicon
      2. PL/SQL Stored Programs
      3. Other Conventions
    3. Data Model and Source Code to Download
  9. Part I: Oracle PL/SQL
    1. Chapter 1: Oracle PL/SQL Development Overview
      1. PL/SQL’s History and Background
      2. Oracle Development Architecture
        1. The Database
        2. The PL/SQL Language
        3. The Oracle Processing Architecture
        4. Two-Tier Model
        5. N-Tier Model
      3. Summary
      4. Mastery Check
    2. Chapter 2: New Features
      1. New SQL Features
        1. Data Catalog DIRECTORY Qualifies a LIBRARY Object
        2. Define Tables with Valid-Time (VT) Support
          1. Table with Explicit VT Columns
          2. Table with Implicit VT Columns
        3. Enhanced Oracle Native LEFT OUTER JOIN Syntax
        4. Default Values for Columns Based on Sequences
        5. Default Values for Explicit Null Insertion
        6. Identity Columns
        7. Increased Size Limits of String and Raw Types
        8. Pass Results from SQL Statements to External Programs
        9. Native SQL Support for Query Row Limits and Offsets
        10. Oracle Database Driver for MySQL Applications
        11. SQL CROSS APPLY, OUTER APPLY, and LATERAL
        12. Bequeath CURRENT_USER Views
      2. New PL/SQL Features
        1. Caching of Invoker Rights Functions
        2. Ability to White List PL/SQL Program Unit Callers
        3. Native Client API Support for PL/SQL Types
        4. New PL/SQL Package UTL_CALL_STACK
        5. DBMS_UTILITY Adds EXPAND_SQL_TEXT Subprogram
        6. DBMS_SQL Adds a New Formal Schema to the PARSE Procedure
        7. PL/SQL Functions in SQL WITH Clause
        8. PL/SQL-Specific Data Types Allowed in SQL
        9. Implicit REF CURSOR Parameter Binding
      3. Supporting Scripts
      4. Summary
      5. Mastery Check
    3. Chapter 3: PL/SQL Basics
      1. Block Structure
        1. Execution Block
        2. Basic Block Structure
        3. Declaration Block
        4. Exception Block
      2. Behavior of Variables in Blocks
        1. Anonymous Blocks
        2. Nested Anonymous Blocks
        3. Local Named Blocks
        4. Stored Named Blocks
      3. Basic Scalar and Composite Data Types
        1. Scalar Data Types
          1. Strings
          2. Dates
          3. Numbers
        2. Attribute and Table Anchoring
        3. Composite Data Types
          1. SQL UDT
          2. PL/SQL Record Type
          3. SQL Collection
          4. PL/SQL Collection
      4. Control Structures
        1. Conditional Structures
          1. If, Elsif, and Else Statements
          2. CASE Statement
        2. Iterative Structures
          1. For Loop Statements
          2. While Loop Statements
          3. Simple Loop Statements
      5. Exceptions
        1. User-Defined Exceptions
        2. Dynamic User-Defined Exceptions
      6. Bulk Operations
      7. Functions, Procedures, and Packages
        1. Functions
        2. Procedures
        3. Packages
      8. Transaction Scope
        1. Single Transaction Scope
        2. Multiple Transaction Scopes
      9. Database Triggers
      10. Summary
      11. Mastery Check
    4. Chapter 4: Language Fundamentals
      1. Lexical Units
        1. Delimiters
        2. Identifiers
          1. Reserved Words and Keywords
          2. Predefined Identifiers
          3. Quoted Identifiers
          4. User-Defined Variables, Subroutines, and User-Defined Data Types
        3. Literals
          1. Character Literals
          2. String Literals
          3. Numeric Literals
          4. Boolean Literals
          5. Date and Time Literals
        4. Comments
      2. Variables and Data Types
        1. Variable Data Types
        2. Scalar Data Types
          1. Boolean
          2. Characters and Strings
          3. Dates, Times, and Intervals
          4. Unicode Characters and Strings
          5. Numbers
        3. Large Objects (LOBs)
          1. BFILE Data Type
          2. BLOB Data Type
          3. CLOB Data Type
          4. NCLOB Data Type
        4. Composite Data Types
          1. Records
          2. Objects
          3. Collections
        5. System Reference Cursors
      3. Summary
      4. Mastery Check
    5. Chapter 5: Control Structures
      1. Conditional Statements
        1. IF Statements
          1. If-then-else Statements
          2. If-then-elsif-then-else Statements
        2. CASE Statements
          1. Simple CASE Statements
          2. Searched CASE Statements
        3. Conditional Compilation Statements
      2. Iterative Statements
        1. Simple Loop Statements
          1. Static Simple Loops
          2. Dynamic Simple Loops
          3. Skipping Iterations
        2. FOR Loop Statements
          1. Range FOR Loop Statements
        3. WHILE Loop Statements
      3. Cursor Structures
        1. Implicit Cursors
          1. Single-Row Implicit Cursors
          2. Multiple-Row Implicit Cursors
          3. Cursor FOR Loop Statements
        2. Explicit Cursors
          1. Static Explicit Cursors
          2. Dynamic Explicit Cursors
          3. Subcursors
      4. Bulk Statements
        1. BULK COLLECT INTO Statements
          1. Parallel Collection Targets
          2. Record Collection Targets
          3. LIMIT-Constrained Collection Targets
        2. FORALL Statements
          1. INSERT Statement
          2. UPDATE Statement
          3. DELETE Statement
          4. %BULK_EXCEPTION Handling
      5. Supporting Scripts
      6. Summary
      7. Mastery Check
    6. Chapter 6: Collections
      1. Introduction to Collections
      2. Object Types: Varray and Table Collections
        1. Varray Collections
        2. Table Collections
          1. Scalar Table Collections
          2. Composite Table Collections
      3. Associative Arrays
        1. Defining and Using Associative Arrays
          1. Associative Arrays of Scalar Data Types
          2. Associative Arrays of Composite Data Types
      4. Oracle Collection API
        1. COUNT Method
        2. DELETE Method
        3. EXISTS Method
        4. EXTEND Method
        5. FIRST Method
        6. LAST Method
        7. LIMIT Method
        8. NEXT Method
        9. PRIOR Method
        10. TRIM Method
      5. Supporting Scripts
      6. Summary
      7. Mastery Check
    7. Chapter 7: Error Management
      1. Exception Types and Scope
        1. Compilation Errors
        2. Runtime Errors
          1. Execution and Exception Block Errors
          2. Declaration Blck Errors
      2. Exception Management Built-in Functions
      3. User-Defined Exceptions
        1. Declaring User-Defined Exceptions
        2. Dynamic User-Defined Exceptions
      4. Exception Stack Functions
      5. Supporting Scripts
      6. Summary
      7. Mastery Check
  10. Part II: PL/SQL Programming
    1. Chapter 8: Functions and Procedures
      1. Function and Procedure Architecture
      2. Transaction Scope
        1. Calling Subroutines
        2. Positional Notation
        3. Named Notation
        4. Mixed Notation
        5. Exclusionary Notation
        6. SQL Call Notation
      3. Functions
        1. Function Model Choices
        2. Creation Options
          1. DETERMINISTIC Clause
          2. PARALLEL_ENABLE Clause
          3. PIPELINED Clause
          4. Object Table Functions
          5. RESULT_CACHE Clause
        3. Pass-by-Value Functions
          1. System Reference Cursor Functions
          2. Deterministic Pass-by-Value Functions
          3. Nondeterministic Pass-by-Value Functions
          4. DML-Enabled Pass-by-Value Functions
          5. Recursive Functions
        4. Pass-by-Reference Functions
      4. Procedures
        1. Pass-by-Value Procedures
        2. Pass-by-Reference Procedures
      5. Supporting Scripts
      6. Summary
      7. Mastery Check
    2. Chapter 9: Packages
      1. Package Architecture
      2. Package Specification
        1. Prototype Features
        2. Serially Reusable Precompiler Directive
        3. Variables
        4. Types
        5. Components: Functions and Procedures
      3. Package Body
        1. Prototype Features
        2. Variables
        3. Types
        4. Components: Functions and Procedures
      4. Definer vs. Invoker Rights Mechanics
      5. Managing Packages in the Database Catalog
        1. Finding, Validating, and Describing Packages
        2. Checking Dependencies
        3. Comparing Validation Methods: Timestamp vs. Signature
      6. Summary
      7. Mastery Check
    3. Chapter 10: Large Objects
      1. Working with Internally Stored LOB Types
        1. LOB Assignments Under 32K
          1. Small LOB Assignments
        2. LOB Assignments over 32K
          1. LOB Construction for Assignments Greater Than 32,767 Bytes
      2. Reading Files into Internally Stored Columns
        1. Reading Local Files into CLOB or NCLOB Columns
        2. Reading Local Files into BLOB Columns
        3. Working with LOBs Through Web Pages
          1. Procedures to Upload CLOB, NCLOB, or BLOB Columns
          2. HTML and PHP Components for CLOB and BLOB Uploads
          3. HTML and PHP Components for Displaying CLOB and BLOB Columns
      3. Working with Binary Files (BFILEs)
        1. Creating and Using Virtual Directories
        2. Reading Canonical Path Names and Filenames
      4. Understanding the DBMS_LOB Package
        1. Package Constants
          1. BLOB_DEDUPLICATE_REGION Record Structure
          2. CLOB_DEDUPLICATE_REGION Record Structure
        2. Package Exceptions
        3. Opening and Closing Methods
          1. CLOSE Procedure
          2. ISOPEN Function
          3. OPEN Procedure
        4. Manipulation Methods
          1. APPEND Procedure
          2. CONVERTTOBLOB Procedure
          3. CONVERTTOCLOB Procedure
          4. COPY Procedure
          5. ERASE Procedure
          6. FRAGMENT_DELETE Procedure
          7. FRAGMENT_INSERT Procedure
          8. FRAGMENT_MOVE Procedure
          9. FRAGMENT_REPLACE Procedure
          10. ISSECUREFILE Function
          11. LOADBLOBFROMFILE Procedure
          12. LOADCLOBFROMFILE Procedure
          13. LOADFROMFILE Procedure
          14. SETOPTIONS Procedure
          15. TRIM Procedure
          16. WRITE Procedure
          17. WRITEAPPEND Procedure
        5. Introspection Methods
          1. COMPARE Function
          2. GETCHUNKSIZE Function
          3. GET_DEDUPLICATED_REGIONS Procedure
          4. GETLENGTH Function
          5. GETOPTIONS Function
          6. GET_STORAGE_LIMIT Function
          7. INSTR Function
          8. READ Procedure
          9. SUBSTR Function
        6. BFILE Methods
          1. FILECLOSE Procedure
          2. FILECLOSEALL Procedure
          3. FILEEXISTS Function
          4. FILEGETNAME Procedure
          5. FILEISOPEN Function
          6. FILEOPEN Procedure
        7. Temporary LOB Methods
          1. CREATETEMPORARY Procedure
          2. ISTEMPORARY Function
          3. FREETEMPORARY Procedure
        8. Security Link Methods
          1. COPY_DBFS_LINK Procedure
          2. COPY_FROM_DBFS_LINK Procedure
          3. DBFS_LINK_GENERATE_PATH Function
          4. GETCONTENTTYPE Function
          5. GET_DBFS_LINK Function
          6. GET_DBFS_LINK_STATE Procedure
          7. SETCONTENTTYPE Procedure
          8. SET_DBFS_LINK Procedure
      5. Supporting Scripts
        1. The LONG to CLOB Script
        2. Manage LOBs from the File System
        3. Manage CLOB and BLOB LOBs Through the Web
        4. Manage BFILE LOBs Through the Web
      6. Summary
      7. Mastery Check
    4. Chapter 11: Object Types
      1. Object Basics
        1. Declaring Objects Types
        2. Implementing Object Bodies
        3. White Listing Object Types
        4. Getters and Setters
        5. Static Member Methods
        6. Comparing Objects
          1. Comparing with the MAP Member Function
          2. Comparing with the ORDER Member Function
      2. Inheritance and Polymorphism
        1. Declaring Subclasses
        2. Implementing Subclasses
        3. Type Evolution
      3. Implementing Object Type Collections
        1. Declaring Object Type Collections
        2. Implementing Object Type Collections
      4. Supporting Scripts
      5. Summary
      6. Mastery Check
    5. Chapter 12: Triggers
      1. Introduction to Triggers
      2. Database Trigger Architecture
      3. Data Definition Language Triggers
        1. Event Attribute Functions
          1. ORA_CLIENT_IP_ADDRESS
          2. ORA_DATABASE_NAME
          3. ORA_DES_ENCRYPTED_PASSWORD
          4. ORA_DICT_OBJ_NAME
          5. ORA_DICT_OBJ_NAME_LIST
          6. ORA_DICT_OBJ_OWNER
          7. ORA_DICT_OBJ_OWNER_LIST
          8. ORA_DICT_OBJ_TYPE
          9. ORA_GRANTEE
          10. ORA_INSTANCE_NUM
          11. ORA_IS_ALTER_COLUMN
          12. ORA_IS_DROP_COLUMN
          13. ORA_IS_SERVERERROR
          14. ORA_LOGIN_USER
          15. ORA_PARTITION_POS
          16. ORA_PRIVILEGE_LIST
          17. ORA_REVOKEE
          18. ORA_SERVER_ERROR
          19. ORA_SERVER_ERROR_DEPTH
          20. ORA_SERVER_ERROR_MSG
          21. ORA_SERVER_ERROR_NUM_PARAMS
          22. ORA_SERVER_ERROR_PARAM
          23. ORA_SQL_TXT
          24. ORA_SYSEVENT
          25. ORA_WITH_GRANT_OPTION
          26. SPACE_ERROR_INFO
        2. Building DDL Triggers
      4. Data Manipulation Language Triggers
        1. Statement-Level Triggers
        2. Row-Level Triggers
      5. Compound Triggers
      6. INSTEAD OF Triggers
      7. System and Database Event Triggers
      8. Trigger Restrictions
        1. Maximum Trigger Size
        2. SQL Statements
        3. LONG and LONG RAW Data Types
        4. Mutating Tables
        5. System Triggers
      9. Supporting Scripts
      10. Summary
      11. Mastery Check
    6. Chapter 13: Dynamic SQL
      1. Dynamic SQL Architecture
      2. Native Dynamic SQL (NDS)
        1. Dynamic Statements
          1. Dynamic DDL Statements
          2. Dynamic DML Statements
        2. Dynamic Statements with Inputs
        3. Dynamic Statements with Inputs and Outputs
        4. Dynamic Statements with an Unknown Number of Inputs
      3. DBMS_SQL Package
        1. Dynamic Statements
          1. Dynamic DDL Statements
          2. Dynamic DML Statements
        2. Dynamic Statements with Input Variables
        3. Dynamic Statements with Variable Inputs and Fixed Outputs
          1. Row-by-Row Statement Processing
          2. Bulk Statement Processing
        4. Dynamic Statements with Variable Inputs and Outputs
        5. DBMS_SQL Package Definition
          1. DBMS_SQL Constants
          2. DBMS_SQL Data Types
          3. DBMS_SQL Functions and Procedures
      4. Supporting Scripts
      5. Summary
      6. Mastery Check
  11. Part III: Appendixes and Glossary
    1. Appendix A: Oracle Database Primer
      1. Oracle Database Architecture
      2. Starting and Stopping the Oracle Database 12c Server
        1. Unix or Linux Operations
        2. Microsoft Windows Operations
      3. Starting and Stopping the Oracle Listener
      4. Multiversion Concurrency Control
        1. Data Transactions
        2. DML Locking and Isolation Control
      5. Definer Rights and Invoker Rights
        1. Definer Rights
        2. Invoker Rights
      6. SQL Interactive and Batch Processing
        1. SQL*Plus Command-Line Interface
          1. Connecting to and Disconnecting from SQL*Plus
          2. Working in the SQL*Plus Environment
          3. Writing SQL Statements with SQL*Plus
          4. Saving SQL Statements with SQL*Plus
          5. Editing SQL Statements with SQL*Plus
          6. Rerunning SQL*Plus SQL Statements from the Buffer
          7. Aborting Entry of SQL Statements in SQL*Plus
          8. Calling and Running SQL*Plus Script Files
          9. Passing Parameters to SQL*Plus Script Files
          10. Calling PL/SQL Programs
          11. Writing SQL*Plus Log Files
        2. Oracle SQL Developer Interface
          1. Launching Oracle SQL Developer
          2. Configuring Oracle SQL Developer
          3. Using Oracle SQL Developer
      7. Database Administration
        1. Provisioning Users
          1. Creating a CDB Oracle User
          2. Creating a PDB Oracle User
          3. Granting Security Privileges
          4. Granting Oracle Privileges
          5. Revoking Privileges
        2. Using Database Constraints
          1. NOT NULL Constraints
          2. UNIQUE Constraints
          3. Primary Key Constraints
          4. Foreign Key Constraints
          5. CHECK Constraints
        3. Security Hardening
          1. Categories of Attackers
          2. Oracle Audit Vault and Database Firewall
          3. Password Hardening
          4. Listener Hardening
        4. Data Governance
          1. Overcoming Resistance to Data Governance
          2. Implementing Data Governance
          3. Developing a Culture of Data Governance
      8. SQL Tuning
        1. EXPLAIN PLAN Statement
        2. DBMS_XPLAN Package
      9. SQL Tracing
        1. Tracing Session Statements
          1. Enable Tracing in the Current Session
          2. Disable Tracing in the Current Session
          3. Enable Tracing in Another Session
        2. Convert Raw Trace Files to Readable Trace Files
      10. Summary
    2. Appendix B: SQL Primer
      1. Oracle SQL Data Types
      2. Data Definition Language (DDL)
        1. CREATE Statement
          1. Users
          2. Granting Oracle Privileges
          3. Revoking Privileges
          4. Tables
          5. Sequences and Identity Columns
          6. Nested Collection Types
          7. Constraints
          8. Indexes
          9. Views
          10. Functions, Procedures, and Packages
          11. Object Types
          12. External Tables
          13. Partitioned Tables
          14. Synonyms
        2. ALTER Statement
          1. Users
          2. Tables
          3. Indexes
          4. Object Types
        3. RENAME Statement
        4. DROP Statement
          1. DROP USER Statement
          2. DROP TABLESPACE Statement
          3. DROP TABLE Statement
          4. DROP INDEX Statement
          5. DROP VIEW Statement
          6. DROP FUNCTION Statement
          7. DROP PROCEDURE Statement
          8. DROP PACKAGE Statement
          9. DROP TYPE Statement
        5. TRUNCATE Statement
        6. COMMENT Statement
      3. Data Manipulation Language (DML)
        1. ACID Compliant Transactions
          1. ACID Compliant INSERT Statements
          2. ACID Compliant UPDATE Statements
          3. ACID Compliant DELETE Statements
        2. INSERT Statement
          1. Insert by Values
          2. Multiple-Table Insert Statements
        3. UPDATE Statement
          1. Generic Update by Values and Queries
          2. Oracle Update by Values and Queries
          3. Update by Correlated Queries
        4. DELETE Statement
          1. Delete by Value Matches
          2. Delete Nested Table Row Elements
          3. Delete by Correlated Queries
        5. MERGE Statement
      4. Transaction Control Language (TCL)
      5. Queries: SELECT Statements
        1. Queries that Return Columns or Results from Columns
          1. Subqueries
          2. Inline Views
          3. Hierarchical Queries
          4. Down the Tree
          5. Up the Tree
          6. Restricting the Depth of Search
          7. Leaf Node Up
        2. Queries that Aggregate
          1. Aggregate Columns Only
          2. Aggregate and Nonaggregate Columns
        3. Queries that Return Columns or Results Selectively
          1. Oracle Proprietary DECODE Statement
          2. ANSI SQL CASE Operator
          3. Selective Aggregation
      6. Join Results
        1. Joins that Splice Together Rows
          1. Cross Join
          2. Inner Join
          3. Outer Join
        2. Joins that Splice Collections
          1. UNION
          2. UNION ALL
          3. INTERSECT
          4. MINUS
      7. Summary
    3. Appendix C: SQL Built-in Functions
      1. Character Functions
        1. ASCII Function
        2. ASCIISTR Function
        3. CHR Function
        4. CONCAT Function
        5. INITCAP Function
        6. INSTR Function
        7. LENGTH Function
        8. LOWER Function
        9. LPAD Function
        10. LTRIM Function
        11. REPLACE Function
        12. REVERSE Function
        13. RPAD Function
        14. RTRIM Function
        15. UPPER Function
      2. Data Type Conversion Functions
        1. CAST Function
        2. CONVERT Function
        3. TO_CHAR Function
          1. Converting a String to a Character String
          2. Converting a Date to a Character String
          3. Converting a Number to a Character String
        4. TO_CLOB Function
        5. TO_DATE Function
        6. TO_LOB Function
        7. TO_NCHAR Function
        8. TO_NCLOB Function
        9. TO_NUMBER Function
      3. Date-time Conversion Functions
        1. ADD_MONTHS Function
        2. CURRENT_DATE Function
        3. CURRENT_TIMESTAMP Function
        4. DBTIMEZONE Function
        5. EXTRACT Function
        6. FROM_TZ Function
        7. LAST_DAY Function
        8. LOCALTIMESTAMP Function
        9. MONTHS_BETWEEN Function
        10. NEW_TIME Function
        11. ROUND Function
          1. ROUND(date) Function
          2. ROUND(number) Function
        12. SYSDATE Function
        13. SYSTIMESTAMP Function
        14. TO_CHAR(date) Function
        15. TO_DSINTERVAL Function
        16. TO_TIMESTAMP Function
        17. TO_TIMESTAMP_TZ Function
        18. TO_YMINTERVAL Function
        19. TRUNC(date) Function
        20. TZ_OFFSET Function
      4. Collection Management Functions
        1. CARDINALITY Function
        2. COLLECT Function
          1. COLLECT Function in an Object Table
          2. COLLECT Function with an Object Type Column
        3. POWERMULTISET Function
        4. POWERMULTISET_BY_CARDINALITY Function
        5. SET Function
      5. Collection Set Operators
        1. CARDINALITY Operator
        2. EMPTY Operator
        3. MULTISET Operator
        4. MULTISET EXCEPT Operator
        5. MULTISET INTERSECT Operator
        6. MULTISET UNION Operator
        7. SET Operator
        8. SUBMULTISET OF Operator
      6. Number Functions
        1. CEIL Function
        2. FLOOR Function
        3. MOD Function
        4. POWER Function
        5. REMAINDER Function
        6. ROUND Function
      7. Error Reporting Functions
        1. SQLCODE Function
        2. SQLERRM Function
      8. Miscellaneous Functions
        1. BFILENAME Function
        2. COALESCE Function
        3. DECODE Function
        4. DUMP Function
        5. EMPTY_BLOB Function
        6. EMPTY_CLOB Function
        7. GREATEST Function
        8. LEAST Function
        9. NANVL Function
        10. NULLIF Function
        11. NVL Function
        12. SYS_CONTEXT Function
        13. TABLE Function
        14. TREAT Function
        15. USERENV Function
        16. VSIZE Function
      9. Summary
    4. Appendix D: PL/SQL Built-in Packages and Types
      1. Oracle Database 11g and 12c New Packages
      2. Examples of Package Use
        1. DBMS_APPLICATION_INFO Example
        2. DBMS_COMPARISON
        3. DBMS_CRYPTO
        4. DBMS_FGA
        5. Case Study: Query Tool
      3. Supporting Scripts
      4. Summary
    5. Appendix E: Regular Expression Primer
      1. Regular Expression Introduction
        1. Character Classes
        2. Collation Classes
        3. Metacharacters
        4. Metasequences
        5. Literals
      2. Regular Expression Implementation
        1. REGEXP_COUNT Function
          1. Title Case Count
          2. Lowercase Count
          3. Case-Insensitive Count
        2. REGEXP_INSTR Function
        3. REGEXP_LIKE Function
        4. REGEXP_REPLACE Function
        5. REGEXP_SUBSTR Function
      3. Supporting Scripts
      4. Summary
    6. Appendix F: Wrapping PL/SQL Code Primer
      1. Limitations of Wrapping PL/SQL
        1. Limitations of the PL/SQL wrap Utility
        2. Limitations of the DBMS_DDL.WRAP Function
      2. Using the wrap Command-Line Utility
      3. Using the DBMS_DDL Command-Line Utility
        1. WRAP Function
        2. CREATE_WRAPPED Procedure
      4. Summary
    7. Appendix G: PL/SQL Hierarchical Profiler Primer
      1. Configuring the Schema
      2. Collecting Profiler Data
      3. Understanding Profiler Data
        1. Reading the Raw Output
        2. Defining the PL/SQL Profiler Tables
        3. Querying the Analyzed Data
      4. Using the plshprof Command-Line Utility
      5. Supporting Scripts
      6. Summary
    8. Appendix H: PL/SQL Reserved Words and Keywords
      1. Summary
    9. Appendix I: Mastery Check Answers
      1. Chapter 1
      2. Chapter 2
      3. Chapter 3
      4. Chapter 4
      5. Chapter 5
      6. Chapter 6
      7. Chapter 7
      8. Chapter 8
      9. Chapter 9
      10. Chapter 10
      11. Chapter 11
      12. Chapter 12
      13. Chapter 13
  12. Glossary
  13. Index