You are previewing Oracle Built-in Packages.
O'Reilly logo
Oracle Built-in Packages

Book Description

Oracle is the most popular database management system in use today, and PL/SQL plays a pivotal role in current and projected Oracle products and applications. PL/SQL is a programming language providing procedural extensions to the SQL relational database language and to an ever-growing number of oracle development tools. originally a rather limited tool, PL/SQL became with Oracle7 a mature and effective language for developers. now, with the introduction of Oracle8, PL/SQL has taken the next step towards becoming a fully realized programming language providing sophisticated object-oriented capabilities. Steven Feuerstein's Oracle PL/SQL Programming is a comprehensive guide to building applications with PL/SQL. That book has become the bible for PL/SQL developers who have raved about its completeness, readability, and practicality. Built-in packages are collections of PL/SQL objects built by Oracle Corporation and stored directly in the Oracle database. The functionality of these packages is available from any programming environment that can call PL/SQL stored procedures, including Visual Basic, Oracle Developer/2000, Oracle Application Server (for web-based development), and, of course, the Oracle database itself. Built-in packages extend the capabilities and power of PL/SQL in many significant ways. for example:

  • DBMS_SQL executes dynamically constructed SQL statements and PL/SQL blocks of code.

  • DBMS_PIPE communicates between different Oracle sessions through a pipe in the RDBMS shared memory.

  • DBMS_JOB submits and manages regularly scheduled jobs for execution inside the database.

  • DBMS_LOB accesses and manipulates Oracle8's large objects (LOBs) from within PL/SQL programs.

  • 1. Introduction

  • Executing Dynamic SQL and PL/SQL

  • Intersession Communication

  • User Lock and Transaction Management

  • Oracle Advanced Queuing

  • Generating Output from PL/SQL Programs

  • Defining an Application Profile

  • Managing Large Objects

  • Datatype Packages

  • Miscellaneous Packages

  • Managing Session Information

  • Managing Server Resources

  • Job Scheduling in the Database

  • Snapshots

  • Advanced Replication

  • Conflict Resolution

  • Deferred Transactions and Remote Procedure Calls

The first edition of Oracle PL/SQL Programming contained a chapter on Oracle's built-in packages. but there is much more to say about the basic PL/SQL packages than Feuerstein could fit in his first book. In addition, now that Oracle8 has been released, there are many new Oracle8 built-in packages not described in the PL/SQL book. There are also packages extensions for specific oracle environments such as distributed database. hence this book. Oracle Built-in Packages pulls together information about how to use the calling interface (API) to Oracle's Built-in Packages, and provides extensive examples on using the built-in packages effectively. The windows diskette included with the book contains the companion guide, an online tool developed by RevealNet, Inc., that provides point-and-click access to the many files of source code and online documentation developed by the authors. The table of contents follows: Preface Part I: Overview

Part II: Application Development Packages

Part III: Server Management Packages

Part IV: Distributed Database Packages

Appendix. What's on the companion disk?

Table of Contents

  1. Oracle Built-in Packages
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. A Note Regarding Supplemental Files
    3. Dedication
    4. Preface
      1. Structure of This Book
      2. Conventions Used in This Book
      3. Versions of Oracle
      4. About the Disk
      5. About PL/Vision
      6. About Q
      7. How to Contact Us
      8. Acknowledgments
        1. Steven
        2. From Charles
        3. From John
    5. I. Overview
      1. 1. Introduction
        1. The Power of Built-in Packages
          1. A Kinder , More Sharing Oracle
        2. Built-in Packages Covered in This Book
          1. Part II
          2. Part III
          3. Part IV
        3. Using Built-in Packages
          1. What Is a Package?
          2. Controlling Access with Packages
          3. Referencing Built-in Package Elements
          4. Exception Handling and Built-in Packages
            1. Package-named system exception
            2. Package-defined exception
            3. Standard system exception
            4. Package-specific exception
            5. Same exception, different causes
          5. Encapsulating Access to the Built-in Packages
            1. Examples of encapsulation packages
          6. Calling Built-in Packaged Code from Oracle Developer/2000 Release 1
            1. Referencing packaged constants and variables
            2. Handling exceptions in Oracle Developer/2000 Release 1
          7. Accessing Built-in Packaged Technology from Within SQL
            1. Calling a packaged function in SQL
            2. Using a packaged procedure from within SQL
        4. Examining Built-in Package Source Code
          1. The STANDARD Package
          2. The DBMS_STANDARD Package
    6. II. Application Development Packages
      1. 2. Executing Dynamic SQL and PL/SQL
        1. Examples of Dynamic SQL
        2. Getting Started with DBMS_SQL
          1. Creating the DBMS_SQL Package
          2. Security and Privilege Issues
          3. DBMS_SQL Programs
          4. Types of Dynamic SQL
          5. DBMS_SQL Exceptions
          6. DBMS_SQL Nonprogram Elements
        3. The DBMS_SQL Interface
          1. Processing Flow of Dynamic SQL
          2. Opening the Cursor
            1. The DBMS_SQL. OPEN_CURSOR function
            2. The DBMS_SQL.IS_OPEN function
          3. Parsing the SQL Statement
            1. The DBMS_SQL.PARSE procedure
            2. Parsing very long SQL statements
          4. Binding Values into Dynamic SQL
            1. The DBMS_SQL.BIND_VARIABLE procedure
              1. Examples
              2. The DBMS_SQL. BIND_ARRAY procedure
              3. Rules for array binding
          5. Defining Cursor Columns
            1. The DBMS_SQL.DEFINE_COLUMN procedure
            2. The DBMS_SQL.DEFINE_ARRAY procedure
          6. Executing the Cursor
            1. The DBMS_SQL.EXECUTE function
          7. Fetching Rows
            1. The DBMS_SQL.FETCH_ROWS function
            2. The DBMS_SQL.EXECUTE_AND_FETCH function
          8. Retrieving Values
            1. The DBMS_SQL.COLUMN_VALUE procedure
            2. The DBMS_SQL.COLUMN_VALUE_LONG procedure
            3. The DBMS_SQL.VARIABLE_VALUE procedure
          9. Closing the Cursor
            1. The DBMS_SQL. CLOSE_CURSOR procedure
          10. Checking Cursor Status
            1. The DBMS_SQL.LAST_ERROR_POSITION function
            2. The DBMS_SQL.LAST_ROW_COUNT function
            3. The DBMS_SQL.LAST_ROW_ID function
            4. The DBMS_SQL.LAST_SQL_FUNCTION_CODE function
          11. Describing Cursor Columns
            1. The DBMS_SQL. DESCRIBE_COLUMNS procedure
        4. Tips on Using Dynamic SQL
          1. Some Restrictions
          2. Privileges and Execution Authority with DBMS_SQL
            1. The tale of Jan
            2. The tale of Scott
          3. Combining Operations
          4. Minimizing Memory for Cursors
          5. Improving the Performance of Dynamic SQL
          6. Problem-Solving Dynamic SQL Errors
          7. Executing DDL in PL/SQL
          8. Executing Dynamic PL/SQL
        5. DBMS_SQL Examples
          1. A Generic Drop_Object Procedure
          2. A Generic Foreign Key Lookup Function
          3. A Wrapper for DBMS_SQL .DESCRIBE_COLUMNS
          4. Displaying Table Contents with Method 4 Dynamic SQL
            1. The “in table” procedural interface
            2. Steps for intab construction
            3. Constructing the SELECT
            4. Computing column length
            5. Defining the cursor structure
            6. Retrieving and displaying data
            7. Build those utilities!
            8. Full text of intab procedure
          5. Indirect Referencing in PL/SQL
            1. Assigning a value
            2. Retrieving a value
            3. Copying a value to a packaged variable
          6. Array Processing with DBMS_SQL
            1. Using array processing to insert
            2. Using array processing to delete
            3. Using array processing to update
            4. Using array processing to fetch
            5. Using array processing in dynamic PL/SQL
          7. Using the RETURNING Clause in Dynamic SQL
            1. RETURNING from a single-row insert
            2. RETURNING from a multiple-row delete
      2. 3. Intersession Communication
        1. DBMS_PIPE: Communicating Between Sessions
          1. Getting Started with DBMS_PIPE
            1. DBMS_PIPE programs
            2. DBMS_PIPE nonprogram elements
          2. How Database Pipes Work
            1. Memory structures
            2. Nontransactional communications
            3. Pipe communications logic
          3. Managing Pipes and the Message Buffer
            1. The DBMS_PIPE.CREATE_PIPE function
              1. Return values
              2. Exceptions
              3. Restrictions
              4. Example
            2. The DBMS_PIPE.REMOVE_PIPE function
              1. Return values
              2. Exceptions
              3. Restrictions
              4. Example
            3. The DBMS_PIPE.RESET_BUFFER procedure
              1. Example
            4. The DBMS_PIPE.PURGE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            5. The DBMS_PIPE.UNIQUE_SESSION_NAME function
              1. Example
          4. Packing and Unpacking Messages
            1. The DBMS_PIPE.PACK_MESSAGE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_PIPE.PACK_MESSAGE_RAW procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_PIPE.PACK_MESSAGE_ROWID procedure
              1. Exceptions
              2. Restrictions
              3. Example
            4. The DBMS_PIPE.UNPACK_MESSAGE procedure
              1. Exceptions
              2. Example
            5. The DBMS_PIPE.UNPACK_MESSAGE_RAW procedure
              1. Exceptions
              2. Example
            6. The DBMS_PIPE.UNPACK_MESSAGE_ROWID procedure
              1. Exceptions
              2. Example
            7. The DBMS_PIPE.NEXT_ITEM_TYPE function
              1. Example
          5. Sending and Receiving Messages
            1. The DBMS_PIPE.SEND_MESSAGE function
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_PIPE.RECEIVE_MESSAGE function
              1. Exceptions
              2. Restrictions
              3. Example
          6. Tips on Using DBMS_PIPE
            1. Defining message types and encapsulating communications logic
            2. Separating messages
            3. Establishing messaging protocols
            4. Paying attention to timeouts
            5. Using RESET_BUFFER
            6. Sizing and removing pipes for good memory management
          7. DBMS_PIPE Examples
            1. Communicating with the outside world
            2. Exploring DBMS_PIPE
            3. The dbpipe utility package
              1. Unpack_to_tbl and pack_from_tbl procedures
              2. The peek procedure
              3. The forward procedure
            4. Implementing a server program
            5. The pipesvr package
              1. Message types
              2. Pipenames
              3. Pack/send, receive/unpack encapsulation
              4. The server procedure
              5. The process_request procedure
              6. Debug procedure
              7. Client side procedures
        2. DBMS_ALERT: Broadcasting Alerts to Users
          1. Getting Started with DBMS_ALERT
            1. DBMS_ALERT programs
            2. DBMS_ALERT nonprogram elements
          2. The DBMS_ALERT Interface
            1. The DBMS_ALERT. REGISTER procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_ALERT.REMOVE procedure
              1. Example
            3. The DBMS_ALERT.REMOVEALL procedure
              1. Example
            4. The DBMS_ALERT. SET_DEFAULTS procedure
              1. Example
            5. The DBMS_ALERT. SIGNAL procedure
              1. Exceptions
              2. Restrictions
              3. Example
            6. The DBMS_ALERT.WAITANY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            7. The DBMS_ALERT.WAITONE procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. DBMS_ALERT Examples
            1. The online auction
            2. The auction schema
            3. Auction system requirements
            4. Integrity constraint triggers
            5. The auction package
              1. Place_bid procedure
              2. Exception handling
              3. The watch_bidding procedure
            6. Testing the system
      3. 4. User Lock and Transaction Management
        1. DBMS_LOCK: Creating and Managing Resource Locks
          1. Getting Started with DBMS_LOCK
            1. DBMS_LOCK programs
            2. DBMS_LOCK nonprogram elements
            3. Lock compatibility rules
          2. The DBMS_LOCK Interface
            1. The DBMS_LOCK.ALLOCATE_UNIQUE procedure
              1. Restrictions
              2. Example
            2. The DBMS_LOCK.REQUEST function
              1. Restrictions
              2. Example
            3. The DBMS_LOCK.CONVERT function
              1. Restrictions
              2. Example
            4. The DBMS_LOCK.RELEASE function
              1. Restrictions
              2. Example
            5. The DBMS_LOCK.SLEEP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Tips on Using DBMS_LOCK
            1. Named locks or lock ids?
            2. Issues with named locks
            3. Performance of named locks
            4. ALLOCATE_UNIQUE drawbacks
            5. Optimizing named locks
            6. REQUEST or CONVERT?
          4. DBMS_LOCK Examples
            1. The dblock package
              1. The lockhandle function
              2. get_lock_TF function
              3. The committed_TF and release functions
            2. Using locks to signal service availability
        2. DBMS_TRANSACTION: Interfacing to SQL Transaction Statements
          1. Getting Started with DBMS_TRANSACTION
            1. DBMS_TRANSACTION programs
            2. DBMS_TRANSACTION exceptions
          2. Advising Oracle About In-Doubt Transactions
            1. The DBMS_TRANSACTION.ADVISE_ROLLBACK, and ADVISE_COMMIT procedures
              1. Example
          3. Committing Data
            1. The DBMS_TRANSACTION.COMMIT procedure
            2. The DBMS_TRANSACTION.COMMIT_COMMENT procedure
            3. The DBMS_TRANSACTION.COMMIT_FORCE procedure
          4. Rolling Back Changes
            1. The DBMS_TRANSACTION.ROLLBACK procedure
            2. The DBMS_TRANSACTION.ROLLBACK_FORCE procedure
            3. The DBMS_TRANSACTION.SAVEPOINT procedure
            4. The DBMS_TRANSACTION.ROLLBACK_SAVEPOINT procedure
            5. The DBMS_TRANSACTION.USE_ROLLBACK_SEGMENT procedure
          5. Setting Transaction Characteristics
            1. The DBMS_TRANSACTION.READ_ONLY procedure
            2. The DBMS_TRANSACTION.READ_WRITE procedure
            3. The DBMS_TRANSACTION.BEGIN_DISCRETE_TRANSACTION procedure
              1. Restrictions
              2. Exceptions
              3. Example
          6. Cleaning Up Transaction Details
            1. The DBMS_TRANSACTION.PURGE_MIXED procedure
            2. The DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY procedure
          7. Returning Transaction Identifiers
            1. The DBMS_TRANSACTION.LOCAL_TRANSACTION_ID function
            2. The DBMS_TRANSACTION.STEP_ID function
      4. 5. Oracle Advanced Queuing
        1. Oracle AQ Concepts
          1. General Features
          2. Enqueue Features
          3. Dequeue Features
          4. Propagation Features
          5. A Glossary of Terms
          6. Components of Oracle AQ
          7. Queue Monitor
          8. Data Dictionary Views
        2. Getting Started with Oracle AQ
          1. Installing the Oracle AQ Facility
          2. Database Initialization
            1. Starting the Queue Monitor
            2. Starting propagation processes
            3. Setting Oracle AQ compatibility
          3. Authorizing Accounts to Use Oracle AQ
        3. Oracle AQ Nonprogram Elements
          1. Constants
            1. Administrative tasks
            2. Operational tasks
          2. Object Names
          3. Queue Type Names
          4. Agents Object Type
          5. Recipient and Subscriber List Table Types
          6. Message Properties Record Type
          7. Enqueue Options Record Type
          8. Dequeue Options Record Type
          9. Oracle AQ Exceptions
        4. DBMS_AQ: Interfacing to Oracle AQ (Oracle8 only)
          1. Enqueuing Messages
            1. The DBMS_AQ. ENQUEUE procedure
            2. Examples
          2. Dequeuing Messages
            1. The DBMS_AQ.DEQUEUE procedure
            2. Examples
            3. Dequeue search criteria
            4. Dequeue order
            5. Dequeue navigation
            6. Dequeuing with message grouping
        5. DBMS_AQADM: Performing AQ Administrative Tasks (Oracle8 only)
          1. Creating Queue Tables
            1. The DBMS_AQADM. GRANT_TYPE_ACCESS procedure
            2. The DBMS_AQADM.CREATE_QUEUE_TABLE procedure
              1. Example
              2. Notes on usage
          2. Creating and Starting Queues
            1. The DBMS_AQADM.CREATE_QUEUE procedure
              1. Example
            2. The DBMS_AQADM. START_QUEUE procedure
              1. Example
            3. The DBMS_AQADM. ALTER_QUEUE procedure
              1. Example
          3. Managing Queue Subscribers
            1. The DBMS_AQADM. ADD_SUBSCRIBER procedure
              1. Example
            2. The DBMS_AQADM. REMOVE_SUBSCRIBER procedure
              1. Example
            3. The DBMS_AQADM.QUEUE_SUBSCRIBERS procedure
              1. Example
          4. Stopping and Dropping Queues
            1. The DBMS_AQADM. STOP_QUEUE procedure
              1. Example
            2. The DBMS_AQADM.DROP_QUEUE procedure
            3. The DBMS_AQADM.DROP_QUEUE_TABLE procedure
              1. Example
          5. Managing Propagation of Messages
            1. The DBMS_AQADM.SCHEDULE_PROPAGATION procedure
              1. Example
            2. The DBMS_AQADM.UNSCHEDULE_PROPAGATION procedure
          6. Verifying Queue Types
            1. The DBMS_AQADM.VERIFY_QUEUE_TYPES procedure
          7. Starting and Stopping the Queue Monitor
            1. The DBMS_AQADM. START_TIME_MANAGER procedure
            2. The DBMS_AQADM. STOP_TIME_MANAGER procedure
        6. Oracle AQ Database Objects
          1. Objects Per Queue Table
            1. The database table for queue data
            2. The queue table view
          2. Data Dictionary Objects
            1. The DBA_QUEUE_TABLES view
            2. The DBA_QUEUES view
            3. The DBA_JOBS view
            4. The GV$AQ and V$AQ dynamic statistics views
        7. Oracle AQ Examples
          1. Improving AQ Ease of Use
          2. Working with Prioritized Queues
            1. More complex prioritization approaches
          3. Building a Stack with AQ Using Sequence Deviation
          4. Browsing a Queue’s Contents
            1. A template for a show_queue procedure
          5. Searching by Correlation Identifier
            1. Wildcarded correlation identifiers
              1. Tips for using the correlation identifier
          6. Using Time Delay and Expiration
          7. Working with Message Groups
            1. Enqueuing messages as a group
              1. Step 1. Create a queue table that will support message grouping
              2. Step 2. Enqueue messages within the same transaction boundary
            2. Dequeuing messages when part of a group
          8. Working with Multiple Consumers
            1. Using the subscriber list
            2. Overriding with a recipient list
      5. 6. Generating Output from PL/SQL Programs
        1. DBMS_OUTPUT: Displaying Output
          1. Getting Started with DBMS_OUTPUT
            1. DBMS_OUTPUT programs
            2. DBMS_OUTPUT concepts
            3. DBMS_OUTPUT exceptions
            4. DBMS_OUTPUT nonprogram elements
            5. Drawbacks of DBMS_OUTPUT
          2. Enabling and Disabling Output
            1. The DBMS_OUTPUT.ENABLE procedure
            2. The DBMS_OUTPUT.DISABLE procedure
            3. Enabling output in SQL*Plus
          3. Writing to the DBMS_OUTPUT Buffer
            1. The DBMS_OUTPUT.PUT procedure
              1. Example
            2. The DBMS_OUTPUT.PUT_LINE procedure
              1. Example
            3. The DBMS_OUTPUT.NEW_LINE procedure
          4. Retrieving Data from the DBMS_OUTPUT Buffer
            1. The DBMS_OUTPUT.GET_LINE procedure
              1. Example
            2. The DBMS_OUTPUT.GET_LINES procedure
              1. Example
          5. Tips on Using DBMS_OUTPUT
          6. DBMS_OUTPUT Examples
            1. Encapsulating DBMS_OUTPUT
            2. Package specification for a DBMS_OUTPUT encapsulator
        2. UTL_FILE: Reading and Writing Server-side Files
          1. Getting Started with UTL_FILE
            1. UTL_FILE programs
            2. Trying out UTL_FILE
            3. File security
            4. Specifying file locations
            5. UTL_FILE exceptions
            6. UTL_FILE nonprogram elements
            7. UTL_FILE restrictions and limitations
            8. The UTL_FILE process flow
          2. Opening Files
            1. The UTL_FILE.FOPEN function
              1. Exceptions
              2. Example
            2. The UTL_FILE.IS_OPEN function
          3. Reading from Files
            1. The UTL_FILE.GET_LINE procedure
              1. Exceptions
              2. Example
          4. Writing to Files
            1. The UTL_FILE.PUT procedure
              1. Exceptions
            2. The UTL_FILE.NEW_LINE procedure
              1. Exceptions
              2. Example
            3. The UTL_FILE. PUT_LINE procedure
              1. Exceptions
              2. Example
            4. The UTL_FILE.PUTF procedure
              1. Exceptions
              2. Example
            5. The UTL_FILE. FFLUSH procedure
              1. Exceptions
          5. Closing Files
            1. The UTL_FILE. FCLOSE procedure
              1. Exceptions
            2. The UTL_FILE. FCLOSE_ALL procedure
              1. Exceptions
          6. Tips on Using UTL_FILE
            1. Handling file I/O errors
            2. Closing unclosed files
            3. Combining locations and filenames
            4. Adding support for paths
            5. You closed what?
          7. UTL_FILE Examples
            1. Enhancing UTL_FILE.GET_LINE
            2. Creating a file
            3. Testing for a file’s existence
            4. Searching a file for a string
            5. Getting the nth line from a file
      6. 7. Defining an Application Profile
        1. Getting Started with DBMS_APPLICATION_INFO
          1. DBMS_APPLICATION_INFO Programs
          2. The V$ Virtual Tables
          3. DBMS_APPLICATION_INFO Nonprogram Elements
        2. DBMS_APPLICATION_INFO Interface
          1. The DBMS_APPLICATION_INFO.READ_CLIENT_INFO procedure
            1. Example
          2. The DBMS_APPLICATION_INFO.READ_MODULE procedure
            1. Example
          3. The DBMS_APPLICATION_INFO.SET_ACTION procedure
            1. Restrictions
            2. Example
            3. Recommendations for usage
          4. The DBMS_APPLICATION_INFO.SET_CLIENT_INFO procedure
            1. Restrictions
            2. Example
          5. The DBMS_APPLICATION_INFO.SET_MODULE procedure
            1. Restrictions
            2. Example
            3. Recommendations for usage
          6. The DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS procedure
            1. Example
        3. DBMS_APPLICATION_INFO Examples
          1. About the register_app Package
          2. The action Procedure
          3. The set_stats Procedure
          4. The Information Procedures
          5. Using the register_app Package
          6. Covering DBMS_APPLICATION_INFO
          7. Monitoring Application SQL Resource Consumption
          8. Session Monitoring and Three-Tier Architectures
          9. Tracking Long-Running Processes
      7. 8. Managing Large Objects
        1. Getting Started with DBMS_LOB
          1. DBMS_LOB Programs
          2. DBMS_LOB Exceptions
          3. DBMS_LOB Nonprogram Elements
          4. About the Examples
        2. LOB Concepts
          1. LOB Datatypes
            1. Internal and external LOBs
            2. The BFILE datatype
            3. The BLOB datatype
            4. The CLOB datatype
            5. The NCLOB datatype
            6. The LOB locator
          2. BFILE Considerations
            1. The DIRECTORY object
            2. Populating a BFILE locator
          3. Internal LOB Considerations
            1. Retaining the LOB locator
            2. The RETURNING clause
            3. NULL LOB locators can be a problem
            4. NULL versus “empty” LOB locators
        3. DBMS_LOB Interface
          1. Working with BFILEs
            1. The DBMS_LOB.FILEEXISTS function
              1. Exceptions
              2. Restrictions
              3. Examples
            2. The DBMS_LOB.FILEGETNAME procedure
              1. Exceptions
              2. Examples
            3. The DBMS_LOB.FILEOPEN procedure
              1. Exceptions
              2. Examples
            4. The DBMS_LOB.FILEISOPEN function
              1. Exceptions
              2. Restrictions
              3. Examples
            5. The DBMS_LOB.FILECLOSE procedure
              1. Exceptions
              2. Examples
            6. The DBMS_LOB.FILECLOSEALL procedure
              1. Exceptions
              2. Examples
            7. The DBMS_LOB.LOADFROMFILE procedure
              1. Exceptions
              2. Examples
          2. Reading and Examining LOBs
            1. The DBMS_LOB.COMPARE function
              1. Exceptions
              2. Restrictions
              3. Examples
            2. The DBMS_LOB.GETLENGTH function
              1. Restrictions
              2. Examples
            3. The DBMS_LOB.READ procedure
              1. Exceptions
              2. Examples
            4. The DBMS_LOB.SUBSTR function
              1. Exceptions
              2. Restrictions
              3. Examples
            5. The DBMS_LOB.INSTR function
              1. Exceptions
              2. Restrictions
              3. Example
          3. Updating BLOBs, CLOBs, and NCLOBs
            1. The DBMS_LOB.APPEND procedure
              1. Exceptions
              2. Examples
            2. The DBMS_LOB.COPY procedure
              1. Exceptions
              2. Example
            3. The DBMS_LOB.ERASE procedure
              1. Exceptions
              2. Example
            4. The DBMS_LOB.TRIM procedure
              1. Exceptions
              2. Example
            5. The DBMS_LOB.WRITE procedure
              1. Exceptions
              2. Example
      8. 9. Datatype Packages
        1. DBMS_ROWID: Working with the ROWID Pseudo-Column (Oracle8 only)
          1. Getting Started with DBMS_ROWID
            1. DBMS_ROWID programs
            2. DBMS_ROWID exceptions
            3. DBMS_ROWID nonprogram elements
          2. ROWID Concepts
          3. The DBMS_ROWID Interface
            1. The DBMS_ROWID.ROWID_BLOCK_NUMBER function
              1. Restrictions
            2. The DBMS_ROWID.CREATE_ROWID function
              1. Restrictions
              2. Example
            3. The DBMS_ROWID.ROWID_INFO procedure
              1. Restrictions
            4. The DBMS_ROWID.ROWID_OBJECT function
              1. Restrictions
              2. Example
            5. The DBMS_ROWID.ROWID_RELATIVE_FNO function
              1. Restrictions
            6. The DBMS_ROWID.ROWID_ROW_NUMBER function
              1. Restrictions
            7. The DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO function
              1. Restrictions
            8. The DBMS_ROWID.ROWID_TO_EXTENDED function
              1. Restrictions
              2. Example
            9. The DBMS_ROWID.ROWID_TO_RESTRICTED function
              1. Restrictions
            10. The DBMS_ROWID.ROWID_TYPE function
              1. Restrictions
              2. Example
            11. The DBMS_ROWID. ROWID_VERIFY function
              1. Restrictions
              2. Example
        2. UTL_RAW: Manipulating Raw Data
          1. Getting Started with UTL_RAW
            1. UTL_RAW programs
          2. Raw Data Manipulation Concepts
            1. Conversion and coercion
            2. Slicing and dicing
            3. Bit-fiddling
          3. The UTL_RAW Interface
            1. The UTL_RAW.BIT_AND function
              1. Restrictions
              2. Example
            2. The UTL_RAW.BIT_COMPLEMENT function
              1. Restrictions
              2. Example
            3. The UTL_RAW.BIT_OR function
              1. Restrictions
              2. Example
            4. The UTL_RAW.BIT_XOR function
              1. Restrictions
              2. Example
            5. The UTL_RAW.CAST_TO_RAW function
              1. Restrictions
              2. Example
            6. The UTL_RAW.CAST_TO_VARCHAR2 function
              1. Restrictions
              2. Example
            7. The UTL_RAW. COMPARE function
              1. Restrictions
              2. Example
            8. The UTL_RAW.CONCAT function
              1. Exceptions
              2. Restrictions
              3. Example
            9. The UTL_RAW.CONVERT function
              1. Exceptions
              2. Restrictions
            10. The UTL_RAW.COPIES function
              1. Exceptions
              2. Restrictions
              3. Example
            11. The UTL_RAW.LENGTH function
              1. Restrictions
              2. Example
            12. The UTL_RAW.OVERLAY function
              1. Exceptions
              2. Restrictions
              3. Example
            13. The UTL_RAW.REVERSE function
              1. Exceptions
              2. Restrictions
              3. Example
            14. The UTL_RAW.SUBSTR function
              1. Exceptions
              2. Restrictions
              3. Example
            15. The UTL_RAW.TRANSLATE function
              1. Exceptions
              2. Restrictions
              3. Example
            16. The UTL_RAW.TRANSLITERATE function
              1. Exceptions
              2. Restrictions
              3. Example
            17. The UTL_RAW.XRANGE function
              1. Restrictions
              2. Example
        3. UTL_REF: Referencing Objects (Oracle8.0.4)
          1. Getting Started with UTL_REF
            1. UTL_REF programs
            2. UTL_REF exceptions
          2. UTL_REF Interface
            1. The UTL_REF.DELETE_OBJECT procedure
              1. Restrictions
            2. The UTL_REF.LOCK_OBJECT procedure
              1. Restrictions
            3. The UTL_REF.SELECT_OBJECT procedure
              1. Restrictions
              2. Example
            4. The UTL_REF.UPDATE_OBJECT procedure
              1. Restrictions
          3. UTL_REF Example
      9. 10. Miscellaneous Packages
        1. DBMS_UTILITY: Performing Miscellaneous Operations
          1. Getting Started with DBMS_UTILITY
            1. DBMS_UTILITY nonprogram elements
          2. The DBMS_UTILITY Interface
            1. The DBMS_UTILITY.ANALYZE_DATABASE procedure
              1. Example
            2. The DBMS_UTILITY. ANALYZE_SCHEMA procedure
              1. Example
            3. The DBMS_UTILITY. ANALYZE_PART_OBJECT procedure (Oracle8 Only)
              1. Example
            4. The DBMS_UTILITY.COMMA_TO_TABLE procedure
              1. Example
            5. The DBMS_UTILITY. COMPILE_SCHEMA procedure
              1. Example
            6. The DBMS_UTILITY. DATA_BLOCK_ADDRESS_BLOCK function
            7. The DBMS_UTILITY. DATA_BLOCK_ADDRESS_FILE function
            8. The DBMS_UTILITY. DB_VERSION procedure
              1. Example
            9. The DBMS_UTILITY. EXEC_DDL_STATEMENT procedure
            10. The DBMS_UTILITY. FORMAT_CALL_STACK function
              1. Example
            11. The DBMS_UTILITY.FORMAT_ERROR_STACK function
              1. Example
            12. The DBMS_UTILITY. GET_HASH_VALUE function
              1. Example
            13. The DBMS_UTILITY. GET_PARAMETER_VALUE function
            14. The DBMS_UTILITY. GET_TIME function
            15. The DBMS_UTILITY. IS_PARALLEL_SERVER function
            16. The DBMS_UTILITY. MAKE_DATA_BLOCK_ADDRESS function
              1. Example
            17. The DBMS_UTILITY. NAME_RESOLVE procedure
            18. The DBMS_UTILITY.NAME_TOKENIZE procedure
            19. The DBMS_UTILITY.PORT_STRING function
            20. The DBMS_UTILITY.TABLE_TO_COMMA procedure
        2. DBMS_DESCRIBE: Describing PL/SQL Program Headers
          1. Getting Started with DBMS_DESCRIBE
            1. DBMS_DESCRIBE program
            2. DBMS_DESCRIBE nonprogram elements
            3. The DBMS_DESCRIBE. DESCRIBE_PROCEDURE procedure
            4. Exceptions
            5. Restrictions
          2. Explaining DBMS_DESCRIBE Results
            1. Specifying a program name
            2. The DESCRIBE level
            3. How overloading is handled
          3. DBMS_DESCRIBE Example
            1. Features of the psdesc package
            2. Using psdesc.args as a quality assurance tool
        3. DBMS_DDL: Compiling and Analyzing Objects
          1. Getting Started with DBMS_DDL
            1. DBMS_DDL programs
          2. Compiling PL/SQL Objects
            1. The DBMS_DDL.ALTER_COMPILE procedure
              1. Exceptions
              2. Example
          3. Computing Statistics for an Object
            1. The DBMS_DDL. ANALYZE_OBJECT procedure
              1. Exceptions
          4. Setting Referenceability of Tables
            1. The DBMS_DDL. (Oracle8 only)
              1. Example
              2. Exceptions
            2. The DBMS_DDL.ALTER_TABLE_NOT_REFERENCEABLE procedure (Oracle8 only)
              1. Exceptions
        4. DBMS_RANDOM: Generating Random Numbers (Oracle8 Only)
          1. Getting Started with DBMS_RANDOM
          2. DBMS_RANDOM Interface
            1. The DBMS_RANDOM.INITIALIZE procedure
              1. Example
            2. The DBMS_RANDOM.SEED procedure (Oracle8 only)
              1. Example
            3. The DBMS_RANDOM.RANDOM function (Oracle8 only)
              1. Example
            4. The DBMS_RANDOM.TERMINATE procedure (Oracle8 only)
    7. III. Server Management Packages
      1. 11. Managing Session Information
        1. DBMS_SESSION: Managing Session Information
          1. Getting Started with DBMS_SESSION
            1. DBMS_SESSION programs
          2. Modifying Session Settings
            1. The DBMS_SESSION. SET_LABEL procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. DBMS_SESSION.SET_MLS_LABEL_FORMAT procedure
              1. Restrictions
              2. Example
            3. The DBMS_SESSION.SET_NLS procedure
              1. Exceptions
              2. Restrictions
              3. Examples
            4. The DBMS_SESSION.SET_ROLE procedure
              1. Exceptions
              2. Restrictions
              3. Examples
          3. Obtaining Session Information
            1. The DBMS_SESSION.IS_ROLE_ENABLED function
              1. Example
            2. The DBMS_SESSION.UNIQUE_SESSION_ID function
              1. Restrictions
              2. Example
          4. Managing Session Resources
            1. The DBMS_SESSION. CLOSE_DATABASE_LINK procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_SESSION.FREE_UNUSED_USER_MEMORY procedure
            3. The DBMS_SESSION.RESET_PACKAGE procedure
              1. Restrictions
              2. Example
            4. The DBMS_SESSION. SET_CLOSE_CACHED_OPEN_CURSORS procedure
              1. Example
            5. The DBMS_SESSION. SET_SQL_TRACE procedure
              1. Restrictions
              2. Example
          5. DBMS_SESSION Examples
            1. Adding value to DBMS_SESSION
            2. The unique_id function
            3. The load_my_session_rec procedure
            4. The sid function
            5. The close_links procedure
            6. The set_sql_trace procedure
            7. The reset procedure
            8. The memory procedure
        2. DBMS_SYSTEM: Setting Events for Debugging
          1. Getting Started with DBMS_SYSTEM
          2. DBMS_SYSTEM Interface
            1. The DBMS_SYSTEM.READ_EV procedure
              1. Restrictions
              2. Example
            2. The DBMS_SYSTEM.SET_EV procedure
              1. Restrictions
            3. The DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION procedure
              1. Example
          3. DBMS_SYSTEM Examples
      2. 12. Managing Server Resources
        1. DBMS_SPACE: Obtaining Space Information
          1. Getting Started with DBMS_SPACE
          2. The DBMS_SPACE Interface
            1. The DBMS_SPACE.FREE_BLOCKS procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_SPACE.UNUSED_SPACE procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. DBMS_SPACE Examples
            1. The segspace package
        2. DBMS_SHARED_POOL: Pinning Objects
          1. Getting Started with DBMS_SHARED_POOL
          2. Pinning and Unpinning Objects
            1. The DBMS_SHARED_POOL.KEEP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_SHARED_POOL.UNKEEP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Monitoring and Modifying Shared Pool Behavior
            1. The DBMS_SHARED_POOL.SIZES procedure
              1. Example
            2. The DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD procedure
              1. Exceptions
              2. Restrictions
              3. Example
          4. DBMS_SHARED_POOL Examples
            1. Pinning packages automatically
            2. Pinning cursors into the shared pool
            3. The DBA_KEEPSIZES view
      3. 13. Job Scheduling in the Database
        1. Getting Started with DBMS_ JOB
          1. DBMS_JOB Programs
          2. Job Definition Parameters
            1. The job parameter
            2. The what parameter
            3. The next_date parameter
            4. The interval parameter
            5. The broken parameter
        2. Job Queue Architecture
          1. INIT.ORA Parameters and Background Processes
            1. JOB_QUEUE_PROCESSES
            2. JOB_QUEUE_INTERVAL
            3. JOB_QUEUE_KEEP_CONNECTIONS
          2. Job Execution and the Job Execution Environment
          3. Miscellaneous Notes
          4. DBMS_JOB Interface
          5. Submitting Jobs to the Job Queue
            1. The DBMS_JOB.SUBMIT procedure
              1. Exceptions.
              2. Example.
            2. The DBMS_JOB.ISUBMIT procedure
              1. Exceptions
              2. Example
          6. Modifying Job Characteristics
            1. The DBMS_JOB.CHANGE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_JOB.INTERVAL procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_JOB.NEXT_DATE procedure
              1. Restrictions
              2. Example
            4. The DBMS_JOB.WHAT procedure
              1. Restrictions
              2. Example
          7. Removing Jobs and Changing Job Execution Status
            1. The DBMS_JOB.REMOVE procedure
              1. Restrictions
              2. Example
            2. The DBMS_JOB.BROKEN procedure
              1. Restrictions
              2. Example
            3. The DBMS_JOB.RUN procedure
              1. Restrictions
              2. Example
          8. Transferring Jobs
            1. The DBMS_JOB.USER_EXPORT procedure
              1. Example.
        3. Tips on Using DBMS_JOB
          1. Job Intervals and Date Arithmetic
          2. Viewing Job Information in the Data Dictionary
          3. DBMS_IJOB: Managing Other Users’ Jobs
        4. DBMS_JOB Examples
          1. Tracking Space in Tablespaces
          2. Fixing Broken Jobs Automatically
          3. Self-Modifying and Self-Aware Jobs
    8. IV. Distributed Database Packages
      1. 14. Snapshots
        1. DBMS_SNAPSHOT: Managing Snapshots
          1. Getting Started with DBMS_SNAPSHOT
          2. Using the I_AM_A_REFRESH Package State Variable
            1. The DBMS_SNAPSHOT.I_AM_A_REFRESH function
              1. Examples
              2. Generating replication support
              3. Auditing triggers
            2. The DBMS_SNAPSHOT.SET_I_AM_A_REFRESH procedure
              1. Example
          3. Refreshing Snapshots
            1. The DBMS_SNAPSHOT.REFRESH procedure
              1. Restrictions
              2. Examples
              3. Read-only snapshot
              4. Related read-only snapshots
              5. Updateable snapshot.
              6. Parallel refreshes
          4. Purging the Snapshot Log
            1. The DBMS_SNAPSHOT.PURGE.LOG procedure
              1. Examples
          5. Reorganizing Tables
            1. The DBMS_SNAPSHOT.BEGIN_TABLE_REORGANIZATION procedure (Oracle8 only)
            2. The DBMS_SNAPSHOT.END_TABLE_REORGANIZATION procedure (Oracle8 only)
              1. Examples
          6. Registering Snapshots
            1. The DBMS_SNAPSHOT.REGISTER_SNAPSHOT procedure (Oracle 8 only)
              1. Example
            2. The DBMS_SNAPSHOT.UNREGISTER_SNAPSHOT procedures (Oracle8 only)
              1. Example
        2. DBMS_REFRESH: Managing Snapshot Groups
          1. Getting Started with DBMS_REFRESH
          2. Creating and Destroying Snapshot Groups
            1. The DBMS_REFRESH.MAKE procedure
              1. Examples
              2. Read-only snapshot. group
              3. Read-only snapshot group with specialized parameters
              4. Parallel propagation
            2. The DBMS_REFRESH.DESTROY procedure
              1. Example
          3. Adding and Subtracting Snapshots from Snapshot Groups
            1. The DBMS_REFRESH.ADD procedure
              1. Example
            2. The DBMS_REFRESH. SUBTRACT procedure
              1. Example
          4. Altering Properties of a Snapshot Group
            1. The DBMS_REFRESH.CHANGE procedure
          5. Manually Refreshing Snapshot Groups
            1. The DBMS_REFRESH.REFRESH procedure
        3. DBMS_OFFLINE_SNAPSHOT: Performing Offline Snapshot Instantiation
          1. Getting Started with DBMS_OFFLINE_SNAPSHOT
            1. DBMS_OFFLINE_SNAPSHOT programs
            2. DBMS_OFFLINE_SNAPSHOT exceptions
          2. DBMS_OFFLINE_SNAPSHOT Interface
            1. The DBMS_OFFLINE_SNAPSHOT.BEGIN_LOAD procedure
            2. The DBMS_OFFLINE_SNAPSHOT. END_LOAD procedure
        4. DBMS_REPCAT: Managing Snapshot Replication Groups
          1. Getting Started with DBMS_REPCAT
            1. DBMS_REPCAT programs
            2. DBMS_REPCAT exceptions
          2. Creating and Dropping Snapshot Replication Groups
            1. The DBMS_REPCAT. CREATE_SNAPSHOT_REPGROUP procedure
              1. Exceptions
              2. Restrictions
            2. The offline snapshot instantiation procedure
            3. The DBMS_REPCAT.DROP_SNAPSHOT_REPGROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Adding and Removing Snapshot Replication Group Objects
            1. The DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT procedure
              1. Exceptions.
              2. Example
            2. The DBMS_REPCAT.DROP_SNAPSHOT_REPOBJECT procedure
              1. Exceptions
              2. Restrictions
              3. Example
          4. Altering a Snapshot Replication Group’s Propagation Mode
            1. The DBMS_REPCAT.ALTER_SNAPSHOT_PROPAGATION procedure
              1. Exceptions
              2. Restrictions
              3. Example
          5. Manually Refreshing a Snapshot Replication Group
            1. The DBMS_REPCAT.REFRESH_SNAPSHOT_REPGROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          6. Switching the Master of a Snapshot Replication Group
            1. The DBMS_REPCAT.SWITCH_SNAPSHOT_MASTER procedure
              1. Exceptions
              2. Restrictions
              3. Example
      2. 15. Advanced Replication
        1. DBMS_REPCAT_AUTH: Setting Up Administrative Accounts
          1. Getting Started with DBMS_REPCAT_AUTH
            1. DBMS_REPCAT_AUTH programs
            2. DBMS_REPCAT_AUTH exceptions
          2. Granting and Revoking Surrogate SYS Accounts
            1. The DBMS_REPCAT_AUTH.GRANT_SURROGATE_REPCAT procedure
              1. Exceptions
              2. Example
            2. The DBMS_REPCAT_AUTH.REVOKE_SURROGATE_REPCAT procedure
              1. Exceptions
              2. Example
          3. Granting and Revoking Propagator Accounts (Oracle8)
        2. DBMS_REPCAT_ADMIN: Setting Up More Administrator Accounts
          1. Getting Started with DBMS_REPCAT_ADMIN
            1. DBMS_REPCAT_ADMIN programs
            2. DBMS_REPCAT_ADMIN exceptions
          2. Creating and Dropping Replication Administrator Accounts
            1. The DBMS_REPCAT_ADMIN.GRANT_ADMIN_REPGROUP procedure
              1. Exceptions
              2. Example
            2. The DBMS_REPCAT_ADMIN.REVOKE_ADMIN_REPGROUP procedure
              1. Exceptions
            3. The DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_REPGROUP procedure
              1. Exceptions
              2. Example
            4. The DBMS_REPCAT_ADMIN.REVOKE_ADMIN_ANY_REPGROUP procedure
              1. Exceptions
              2. Example
        3. DBMS_REPCAT: Replication Environment Administration
          1. Getting Started with DBMS_REPCAT
            1. DBMS_REPCAT programs
            2. Exceptions
          2. Replication Groups with DBMS_REPCAT
            1. The DBMS_REPCAT.CREATE_MASTER_REPGROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_MASTER_REPGROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT. COMMENT_ON_REPGROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Replicated Objects with DBMS_REPCAT
            1. The DBMS_REPCAT.CREATE_MASTER_REPOBJECT procedure
              1. Exceptions
              2. Restrictions
              3. Example
              4. Adding an existing table to a replication group
              5. Creating an object at the master definition site
              6. Replicating a package
            2. The DBMS_REPCAT. SET_COLUMNS procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.DROP_MASTER_REPOBJECT procedure
              1. Exceptions
              2. Restrictions
              3. Examples
            4. The DBMS_REPCAT. EXECUTE_DDL procedure
              1. Exceptions
              2. Restrictions
              3. Example
            5. The DBMS_REPCAT. ALTER_MASTER_REPOBJECT procedure
              1. Exceptions
              2. Restrictions
              3. Example
            6. The DBMS_REPCAT. COMMENT_ON_REPOBJECT procedure
              1. Exceptions
              2. Restrictions
              3. Example
          4. Replication Support with DBMS_REPCAT
            1. The DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT procedure
              1. Exceptions
              2. Restrictions
              3. Example
              4. The replication support trigger
              5. The replication support packages
              6. Generating replication support for packages and procedures
            2. The DBMS_REPCAT. GENERATE_REPLICATION_PACKAGE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.GENERATE_REPLICATION_TRIGGER procedure
              1. Exceptions
              2. Restrictions
              3. Examples
          5. Adding and Removing Master Sites with DBMS_REPCAT
            1. The DBMS_REPCAT.ADD_MASTER_DATABASE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.REMOVE_MASTER_DATABASES procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.COMMENT_ON_REPSITES procedure
              1. Exceptions
              2. Restrictions
              3. Example
            4. The DBMS_REPCAT. RELOCATE_MASTERDEF procedure
              1. Exceptions
              2. Restrictions
              3. Example
          6. Maintaining the Repcatlog Queue with DBMS_REPCAT
            1. The DBMS_REPCAT .DO_DEFERRED_REPCAT_ADMIN procedure
              1. Exceptions
              2. Restrictions
              3. Example.
            2. The DBMS_REPCAT.WAIT_MASTER_LOG procedure
              1. Exceptions
              2. Example
            3. The DBMS_REPCAT. PURGE_MASTER_LOG procedure
              1. Exceptions
              2. Restrictions
              3. Example
          7. Quiescence with DBMS_REPCAT
            1. The DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.RESUME_MASTER_ACTIVITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
          8. Miscellaneous DBMS_REPCAT Procedures
            1. The DBMS_REPCAT. REPCAT_IMPORT_CHECK procedure
              1. Exceptions
              2. Example
            2. The DBMS_REPCAT. ALTER_MASTER_PROPAGATION procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT. SEND_AND_COMPARE_OLD_VALUES procedure (Oracle8 only)
              1. Exceptions
              2. Restrictions
        4. DBMS_OFFLINE_OG: Performing Site Instantiation
          1. Getting Started with DBMS_OFFLINE_OG
          2. DBMS_OFFLINE_OG Interface
            1. The DBMS_OFFLINE_OG.BEGIN_INSTANTIATION procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_OFFLINE_OG.BEGIN_LOAD procedure
              1. Exceptions
              2. Restrictions
            3. The DBMS_OFFLINE_OG.END_INSTANTIATION procedure
              1. Exceptions
              2. Restrictions
            4. The DBMS_OFFLINE_OG.END_LOAD procedure
              1. Exceptions
              2. Restrictions
            5. The DBMS_OFFLINE_OG. RESUME_SUBSET_OF_MASTERS procedure
              1. Exceptions
              2. Restrictions
        5. DBMS_RECTIFIER_DIFF: Comparing Replicated Tables
          1. Getting Started with DBMS_RECTIFIER_DIFF
          2. DBMS_RECTIFIER_DIFF Interface
            1. The DBMS_RECTIFIER.DIFFERENCES procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_RECTIFIER_DIFF. RECTIFY procedure
              1. Exceptions
              2. Restrictions
              3. Example
        6. DBMS_REPUTIL: Enabling and Disabling Replication
          1. Getting Started with DBMS_REPUTIL
          2. DBMS_REPUTIL Interface
            1. DBMS_REPUTIL.REPLICATION_OFF procedure
            2. DBMS_REPUTIL.REPLICATION_ON procedure
      3. 16. Conflict Resolution
        1. Getting Started with DBMS_REPCAT
          1. DBMS_REPCAT Programs
          2. DBMS-REPCAT Exceptions
          3. DBMS-REPCAT Nonprogram Elements
          4. Data Dictionary Views
        2. Column Groups with DBMS_REPCAT
          1. About Column Groups
          2. Creating and Dropping Column Groups
            1. The DBMS_REPCAT.DEFINE_COLUMN_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_COLUMN_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.MAKE_COLUMN_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Modifying Existing Column Groups
            1. The DBMS_REPCAT.ADD_GROUPED_COLUMN procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_GROUPED_COLUMN procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.COMMENT_ON_COLUMN_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
        3. Priority Groups with DBMS_REPCAT
          1. About Priority Groups
          2. Creating, Maintaining, and Dropping Priority Groups
            1. The DBMS_REPCAT.DEFINE_PRIORITY_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
              4. Creating a priority group for datatype CHAR
              5. Creating a priority group for datatype VARCHAR
            2. The DBMS_REPCAT.DROP_PRIORITY_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.COMMENT_ON_PRIORITY_GROUP procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Creating and Maintaining Priorities Within a Priority Group
            1. The DBMS_REPCAT.ADD_PRIORITY_<datatype> procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.ALTER_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Examples
            3. The DBMS_REPCAT.ALTER_PRIORITY_<datatype> procedure
              1. Exceptions
              2. Restrictions
              3. Example
          4. Dropping Priorities from a Priority Group
            1. The DBMS_REPCAT.DROP_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_PRIORITY_<datatype> procedure
              1. Exceptions
              2. Restrictions
              3. Example
        4. Site Priority Groups with DBMS_REPCAT
          1. About Site Priority Groups
          2. Creating, Maintaining, and Dropping Site Priorities
            1. The DBMS_REPCAT.DEFINE_SITE_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_SITE_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.COMMENT_ON_SITE_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
          3. Maintaining Site Priorities
            1. The DBMS_REPCAT.ADD_SITE_PRIORITY_SITE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_REPCAT.DROP_SITE_PRIORITY_SITE procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.ALTER_SITE_PRIORITY procedure
              1. Exceptions
              2. Restrictions
              3. Example
            4. The DBMS_REPCAT.ALTER_SITE_PRIORITY_SITE
              1. Exceptions
              2. Restrictions
              3. Example
        5. Assigning Resolution Methods with DBMS_REPCAT
          1. About Resolution Methods
            1. The DBMS_REPCAT.ADD_<conflicttype>_RESOLUTION
              1. Exception
              2. Restrictions
              3. Examples
              4. Examples of ADD_UPDATE_RESOLUTION
              5. Examples of ADD_UNIQUE_RESOLUTION
              6. Examples of ADD_DELETE_RESOLUTION
              7. User-defined methods
            2. The DBMS_REPCAT.DROP_<conflicttype>_RESOLUTION procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_REPCAT.COMMENT_ON_<conflicttype>_RESOLUTION procedure
              1. Exceptions
              2. Restrictions
              3. Example
        6. Monitoring Conflict Resolution with DBMS_REPCAT
          1. About Monitoring
            1. The DBMS_REPCAT.REGISTER_STATISTICS procedure
              1. Exceptions
              2. Example
            2. The DBMS_REPCAT.CANCEL_STATISTICS procedure
              1. Exceptions
              2. Example
            3. The DBMS_REPCAT.PURGE_STATISTICS procedure
              1. Exceptions
              2. Example
      4. 17. Deferred Transactions and Remote Procedure Calls
        1. About Deferred Transactions and RPCs
          1. About Remote Destinations
          2. Data Dictionary Views
        2. DBMS_DEFER_SYS: Managing Deferred Transactions
          1. Getting Started with DBMS_DEFER_SYS
            1. DBMS_DEFER_SYS programs
            2. DBMS_DEFER_SYS exceptions
            3. DBMS_DEFER_SYS nonprogram elements
          2. Adding and Deleting Default Destinations
            1. The DBMS_DEFER.SYS.ADD_DEFAULT_DEST procedure
              1. Exceptions
              2. Example
            2. The DBMS_DEFER.SYS.DELETE_DEFAULT_DEST procedure
              1. Example
          3. Copying Deferred Transactions to New Destinations
            1. The DBMS_DEFER_SYS.COPY procedure
              1. Exceptions
              2. Example
          4. Maintenance Procedures
            1. The DBMS_DEFER_SYS.DELETE_ERROR procedure
              1. Exceptions
              2. Examples
            2. The DBMS_DEFER_SYS.DELETE_TRAN procedure
              1. Exceptions
            3. The DBMS_DEFER_SYS.DISABLED function
              1. Exceptions
            4. The DBMS_DEFER_SYS.EXECUTE_ERROR procedure
              1. Exceptions
              2. Restrictions
              3. Example
            5. The DBMS_DEFER_SYS.SET_DISABLED procedure
              1. Exceptions
              2. Restrictions
              3. Example
          5. Propagating Deferred RPCs
            1. Scheduling strategies
            2. The DBMS_DEFER_SYS.EXECUTE procedure
              1. Exceptions
              2. Examples
              3. Advanced usage: using the EXECUTE parameters
            3. The DBMS_DEFER_SYS. SCHEDULE_EXECUTION procedure
              1. Example
            4. The DBMS_DEFER_SYS.UNSCHEDULE_EXECUTION procedure
              1. Exceptions
          6. Scheduling Propagation (Oracle8 only)
            1. The DBMS_DEFER_SYS.EXCLUDE_PUSH function (Oracle8 only)
            2. The DBMS_DEFER_SYS.PURGE function (Oracle8 only)
              1. Exceptions
            3. The DBMS_DEFER_SYS.PUSH function
              1. Exceptions
            4. The DBMS_DEFER_SYS.SCHEDULE_PURGE procedure (Oracle8 only)
            5. The DBMS_DEFER_SYS.SCHEDULE_PUSH procedure (Oracle8 only)
            6. The DBMS_DEFER_SYS.UNSCHEDULE_PURGE procedure (Oracle8 only)
            7. The DBMS_DEFER_SYS.UNSCHEDULE_PUSH procedure (Oracle8 only)
              1. Exceptions
            8. The DBMS_DEFER_SYS.REGISTER_PROPAGATOR procedure (Oracle8 only)
              1. Exceptions
            9. The DBMS_DEFER_SYS.UNREGISTER_PROPAGATOR procedure (Oracle8 only)
              1. Exceptions
        3. DBMS_DEFER: Building Deferred Calls
          1. Getting Started with DBMS_DEFER
            1. DBMS_DEFER programs
            2. DBMS_DEFER exceptions
            3. DBMS_DEFER nonprogram elements
          2. Basic RPCs
            1. The DBMS_DEFER.TRANSACTION procedure
              1. Exceptions
              2. Restrictions
              3. Example
            2. The DBMS_DEFER.CALL procedure
              1. Exceptions
              2. Restrictions
              3. Example
            3. The DBMS_DEFER.COMMIT_WORK procedure
              1. Exceptions
              2. Example:
              3. Using DBMS_DEFER.TRANSACTION
              4. Specifying nondefault destinations with TRANSACTION
              5. Committing deferred RPC calls with COMMIT_WORK
          3. Parameterized RPCs
            1. The DBMS_DEFER. <datatype>_ARG procedure
              1. Exceptions
              2. Example
        4. DBMS_DEFER_QUERY: Performing Diagnostics and Maintenance
          1. Getting Started with DBMS_DEFER_QUERY
            1. DBMS_DEFER_QUERY programs
            2. DBMS_DEFER_QUERY nonprogram elements
            3. The DBMS_DEFER_QUERY. GET_ARG_TYPE function
              1. Exceptions
              2. Example
            4. The DBMS_DEFER_QUERY.GET_CALL_ARGS procedure
              1. Exceptions
              2. Example
            5. The DBMS_DEFER_QUERY.GET_<datatype>_ARG function
              1. Exceptions
              2. Example
    9. A. What’s on the Companion Disk?
      1. Installing the Guide
      2. Using the Guide
    10. Index
    11. About the Authors
    12. Colophon
    13. SPECIAL OFFER: Upgrade this ebook with O’Reilly