Table of Contents
- List of Tables
 - Title and Copyright Information
 - Preface
 - Changes in Oracle Database Release
 - 
               
               Part I Database Development Fundamentals
                  
               
               
               
- 1 Design Basics
 - 2 Connection Strategies for Database Applications
 - 
                     
                     
                        
                        3
                            Performance and Scalability
                     
                        
                     
                     
                     
- 3.1 Performance Strategies
 - 3.2 Tools for Performance
 - 3.3 Monitoring Database Performance
 - 3.4 Testing for Performance
 - 
                           
                           
                              
                              3.5
                                  Using Client Result Cache
                           
                              
                           
                           
                           
- 3.5.1 About Client Result Cache
 - 3.5.2 Benefits of Client Result Cache
 - 3.5.3 Guidelines for Using Client Result Cache
 - 3.5.4 Client Result Cache Consistency
 - 3.5.5 Deployment-Time Settings for Client Result Cache
 - 3.5.6 Client Result Cache Statistics
 - 3.5.7 Validation of Client Result Cache
 - 3.5.8 Client Result Cache and Server Result Cache
 - 3.5.9 Client Result Cache Demo Files
 - 3.5.10 Client Result Cache Compatibility with Previous Releases
 
 - 3.6 Statement Caching
 - 3.7 OCI Client Statement Cache Auto-Tuning
 - 3.8 Client-Side Deployment Parameters
 - 3.9 Using Query Change Notification
 - 
                           
                           
                              
                              3.10
                                  Using Database Resident Connection Pool
                           
                              
                           
                           
                           
- 3.10.1 About Database Resident Connection Pool
 - 3.10.2 Configuring DRCP
 - 3.10.3 Sharing Proxy Sessions
 - 3.10.4 Using JDBC with DRCP
 - 3.10.5 Using OCI Session Pool APIs with DRCP
 - 3.10.6 Session Purity and Connection Class
 - 3.10.7 Starting Database Resident Connection Pool
 - 3.10.8 Enabling DRCP
 - 3.10.9 Benefiting from the Scalability of DRCP in an OCI Application
 - 3.10.10 Benefiting from the Scalability of DRCP in a Java Application
 - 3.10.11 Best Practices for Using DRCP
 - 3.10.12 Compatibility and Migration
 - 3.10.13 Using DRCP with Oracle Database Native Network Encryption
 - 3.10.14 DRCP Restrictions
 - 3.10.15 Using DRCP with Custom Pools
 - 3.10.16 Explicitly Marking Sessions Stateful or Stateless
 - 3.10.17 Using DRCP with Oracle Real Application Clusters
 - 3.10.18 Using DRCP with Pluggable Databases
 - 3.10.19 DRCP with Data Guard
 
 - 3.11 Memoptimize Pool
 - 3.12 Oracle RAC Sharding
 
 - 4 Designing Applications for Oracle Real-World Performance
 - 
                     
                     
                        
                        5
                            Security
                     
                        
                     
                     
                     
- 5.1 Enabling User Access with Grants, Roles, and Least Privilege
 - 5.2 Automating Database Logins
 - 5.3 Controlling User Access with Fine-Grained Access Control
 - 5.4 Using Invoker's and Definer's Rights for Procedures and Functions
 - 5.5 Managing External Procedures for Your Applications
 - 5.6 Auditing User Activity
 
 - 6 High Availability
 - 7 Advanced PL/SQL Features
 
 - 
               
               Part II SQL for Application Developers
                  
               
               
               
- 
                     
                     
                        
                        8
                            SQL Processing for Application Developers
                     
                        
                     
                     
                     
- 8.1 Description of SQL Statement Processing
 - 8.2 Grouping Operations into Transactions
 - 8.3 Ensuring Repeatable Reads with Read-Only Transactions
 - 8.4 Locking Tables Explicitly
 - 8.5 Using Oracle Lock Management Services (User Locks)
 - 8.6 Using Serializable Transactions for Concurrency Control
 - 8.7 Nonblocking and Blocking DDL Statements
 - 8.8 Autonomous Transactions
 - 8.9 Resuming Execution After Storage Allocation Errors
 
 - 
                     
                     
                        
                        9
                            Using SQL Data Types in Database Applications
                     
                        
                     
                     
                     
- 9.1 Using the Correct and Most Specific Data Type
 - 9.2 Representing Character Data
 - 
                           
                           
                              
                              9.3
                                  Representing Numeric Data
                           
                              
                           
                           
                           
- 9.3.1 Floating-Point Number Components
 - 9.3.2 Floating-Point Number Formats
 - 9.3.3 Representing Special Values with Native Floating-Point Data Types
 - 9.3.4 Comparing Native Floating-Point Values
 - 9.3.5 Arithmetic Operations with Native Floating-Point Data Types
 - 9.3.6 Conversion Functions for Native Floating-Point Data Types
 - 9.3.7 Client Interfaces for Native Floating-Point Data Types
 
 - 9.4 Representing Date and Time Data
 - 9.5 Representing Specialized Data
 - 9.6 Identifying Rows by Address
 - 9.7 Displaying Metadata for SQL Operators and Functions
 
 - 10 Using Regular Expressions in Database Applications
 - 
                     
                     
                        
                        11
                            Using Indexes in Database Applications
                     
                        
                     
                     
                     
- 11.1 Guidelines for Managing Indexes
 - 11.2 Managing Indexes
 - 11.3 When to Use Domain Indexes
 - 
                           
                           
                              
                              11.4
                                  When to Use Function-Based Indexes
                           
                              
                           
                           
                           
- 11.4.1 Advantages of Function-Based Indexes
 - 11.4.2 Disadvantages of Function-Based Indexes
 - 11.4.3 Example: Function-Based Index for Precomputing Arithmetic Expression
 - 11.4.4 Example: Function-Based Indexes on Object Column
 - 11.4.5 Example: Function-Based Index for Faster Case-Insensitive Searches
 - 11.4.6 Example: Function-Based Index for Language-Dependent Sorting
 
 
 - 
                     
                     
                        
                        12
                            Maintaining Data Integrity in Database Applications
                     
                        
                     
                     
                     
- 12.1 Enforcing Business Rules with Constraints
 - 12.2 Enforcing Business Rules with Both Constraints and Application Code
 - 12.3 Creating Indexes for Use with Constraints
 - 12.4 When to Use NOT NULL Constraints
 - 12.5 When to Use Default Column Values
 - 12.6 Choosing a Primary Key for a Table (PRIMARY KEY Constraint)
 - 12.7 When to Use UNIQUE Constraints
 - 12.8 Enforcing Referential Integrity with FOREIGN KEY Constraints
 - 12.9 Minimizing Space and Time Overhead for Indexes Associated with Constraints
 - 12.10 Guidelines for Indexing Foreign Keys
 - 12.11 Referential Integrity in a Distributed Database
 - 12.12 When to Use CHECK Constraints
 - 12.13 Examples of Defining Constraints
 - 12.14 Enabling and Disabling Constraints
 - 12.15 Modifying Constraints
 - 12.16 Renaming Constraints
 - 12.17 Dropping Constraints
 - 12.18 Managing FOREIGN KEY Constraints
 - 12.19 Viewing Information About Constraints
 
 
 - 
                     
                     
                        
                        8
                            SQL Processing for Application Developers
                     
                        
                     
                     
                     
 - 
               
               Part III PL/SQL for Application Developers
                  
               
               
               
- 
                     
                     
                        
                        13
                            Coding PL/SQL Subprograms and Packages
                     
                        
                     
                     
                     
- 13.1 Overview of PL/SQL Subprograms
 - 13.2 Overview of PL/SQL Packages
 - 13.3 Overview of PL/SQL Units
 - 
                           
                           
                              
                              13.4
                                  Creating PL/SQL Subprograms and Packages
                           
                              
                           
                           
                           
- 13.4.1 Privileges Needed to Create Subprograms and Packages
 - 13.4.2 Creating Subprograms and Packages
 - 13.4.3 PL/SQL Object Size Limits
 - 13.4.4 PL/SQL Data Types
 - 13.4.5 Returning Result Sets to Clients
 - 13.4.6 Returning Large Amounts of Data from a Function
 - 13.4.7 PL/SQL Function Result Cache
 - 13.4.8 Overview of Bulk Binding
 - 13.4.9 PL/SQL Dynamic SQL
 
 - 13.5 Altering PL/SQL Subprograms and Packages
 - 13.6 Deprecating Packages, Subprograms, and Types
 - 13.7 Dropping PL/SQL Subprograms and Packages
 - 13.8 Compiling PL/SQL Units for Native Execution
 - 13.9 Invoking Stored PL/SQL Subprograms
 - 
                           
                           
                              
                              13.10
                                  Invoking Stored PL/SQL Functions from SQL Statements
                           
                              
                           
                           
                           
- 13.10.1 Why Invoke PL/SQL Functions from SQL Statements?
 - 13.10.2 Where PL/SQL Functions Can Appear in SQL Statements
 - 13.10.3 When PL/SQL Functions Can Appear in SQL Expressions
 - 13.10.4 Controlling Side Effects of PL/SQL Functions Invoked from SQL Statements
 
 - 13.11 Analyzing and Debugging Stored Subprograms
 - 13.12 Package Invalidations and Session State
 - 13.13 Example: Raising an ORA-04068 Error
 - 13.14 Example: Trapping ORA-04068
 
 - 
                     
                     
                        
                        14
                            Using PL/Scope
                     
                        
                     
                     
                     
- 14.1 Overview of PL/Scope
 - 14.2 Privileges Required for Using PL/Scope
 - 14.3 Specifying Identifier and Statement Collection
 - 14.4 How Much Space is PL/Scope Data Using?
 - 14.5 Viewing PL/Scope Data
 - 14.6 Overview of Data Dictionary Views Useful to Manage PL/SQL Code
 - 14.7 Sample PL/Scope Session
 
 - 
                     
                     
                        
                        15
                            Using the PL/SQL Hierarchical Profiler
                     
                        
                     
                     
                     
- 15.1 Overview of PL/SQL Hierarchical Profiler
 - 15.2 Collecting Profile Data
 - 15.3 Understanding Raw Profiler Output
 - 15.4 Analyzing Profile Data
 - 15.5 plshprof Utility
 
 - 16 Using PL/SQL Basic Block Coverage to Maintain Quality
 - 
                     
                     
                        
                        17
                            Developing PL/SQL Web Applications
                     
                        
                     
                     
                     
- 17.1 Overview of PL/SQL Web Applications
 - 17.2 Implementing PL/SQL Web Applications
 - 17.3 Using mod_plsql Gateway to Map Client Requests to a PL/SQL Web Application
 - 
                           
                           
                              
                              17.4
                                  Using Embedded PL/SQL Gateway
                           
                              
                           
                           
                           
- 17.4.1 How Embedded PL/SQL Gateway Processes Client Requests
 - 17.4.2 Installing Embedded PL/SQL Gateway
 - 
                                 
                                 
                                    
                                    17.4.3
                                        Configuring Embedded PL/SQL Gateway
                                 
                                    
                                 
                                 
                                 
- 17.4.3.1 Configuring Embedded PL/SQL Gateway: Overview
 - 
                                       
                                       
                                          
                                          17.4.3.2
                                              Configuring User Authentication for Embedded PL/SQL Gateway
                                       
                                          
                                       
                                       
                                       
- 17.4.3.2.1 Configuring Static Authentication with DBMS_EPG
 - 17.4.3.2.2 Configuring Dynamic Authentication with DBMS_EPG
 - 17.4.3.2.3 Configuring Anonymous Authentication with DBMS_EPG
 - 17.4.3.2.4 Determining the Authentication Mode of a DAD
 - 17.4.3.2.5 Examples: Creating and Configuring DADs
 - 17.4.3.2.6 Example: Determining the Authentication Mode for a DAD
 - 17.4.3.2.7 Example: Determining the Authentication Mode for All DADs
 - 17.4.3.2.8 Example: Showing DAD Authorizations that Are Not in Effect
 - 17.4.3.2.9 Examining Embedded PL/SQL Gateway Configuration
 
 
 - 17.4.4 Invoking PL/SQL Stored Subprograms Through Embedded PL/SQL Gateway
 - 17.4.5 Securing Application Access with Embedded PL/SQL Gateway
 - 17.4.6 Restrictions in Embedded PL/SQL Gateway
 - 17.4.7 Using Embedded PL/SQL Gateway: Scenario
 
 - 17.5 Generating HTML Output with PL/SQL
 - 
                           
                           
                              
                              17.6
                                  Passing Parameters to PL/SQL Web Applications
                           
                              
                           
                           
                           
- 17.6.1 Passing List and Dropdown-List Parameters from an HTML Form
 - 17.6.2 Passing Option and Check Box Parameters from an HTML Form
 - 17.6.3 Passing Entry-Field Parameters from an HTML Form
 - 17.6.4 Passing Hidden Parameters from an HTML Form
 - 17.6.5 Uploading a File from an HTML Form
 - 17.6.6 Submitting a Completed HTML Form
 - 17.6.7 Handling Missing Input from an HTML Form
 - 17.6.8 Maintaining State Information Between Web Pages
 
 - 17.7 Performing Network Operations in PL/SQL Subprograms
 
 - 
                     
                     
                        
                        18
                            Using Continuous Query Notification (CQN)
                     
                        
                     
                     
                     
- 18.1 About Object Change Notification (OCN)
 - 18.2 About Query Result Change Notification (QRCN)
 - 18.3 Events that Generate Notifications
 - 18.4 Notification Contents
 - 18.5 Good Candidates for CQN
 - 18.6 Creating CQN Registrations
 - 
                           
                           
                              
                              18.7
                                  Using PL/SQL to Create CQN Registrations
                           
                              
                           
                           
                           
- 18.7.1 PL/SQL CQN Registration Interface
 - 
                                 
                                 
                                    
                                    18.7.2
                                        CQN Registration Options
                                 
                                    
                                 
                                 
                                 
- 18.7.2.1 Notification Type Option
 - 18.7.2.2 QRCN Mode (QRCN Notification Type Only)
 - 18.7.2.3 ROWID Option
 - 18.7.2.4 Operations Filter Option (OCN Notification Type Only)
 - 18.7.2.5 Transaction Lag Option (OCN Notification Type Only)
 - 18.7.2.6 Notification Grouping Options
 - 18.7.2.7 Reliable Option
 - 18.7.2.8 Purge-on-Notify and Timeout Options
 
 - 18.7.3 Prerequisites for Creating CQN Registrations
 - 18.7.4 Queries that Can Be Registered for Object Change Notification (OCN)
 - 18.7.5 Queries that Can Be Registered for Query Result Change Notification (QRCN)
 - 18.7.6 Using PL/SQL to Register Queries for CQN
 - 18.7.7 Best Practices for CQN Registrations
 - 18.7.8 Troubleshooting CQN Registrations
 - 18.7.9 Deleting Registrations
 - 18.7.10 Configuring CQN: Scenario
 
 - 
                           
                           
                              
                              18.8
                                  Using OCI to Create CQN Registrations
                           
                              
                           
                           
                           
- 18.8.1 Using OCI for Query Result Set Notifications
 - 18.8.2 Using OCI to Register a Continuous Query Notification
 - 18.8.3 Using OCI Subscription Handle Attributes for Continuous Query Notification
 - 18.8.4 OCI_ATTR_CQ_QUERYID Attribute
 - 18.8.5 Using OCI Continuous Query Notification Descriptors
 - 18.8.6 Demonstrating Continuous Query Notification in an OCI Sample Program
 
 - 18.9 Querying CQN Registrations
 - 18.10 Interpreting Notifications
 
 
 - 
                     
                     
                        
                        13
                            Coding PL/SQL Subprograms and Packages
                     
                        
                     
                     
                     
 - 
               
               Part IV Advanced Topics for Application Developers
                  
               
               
               
- 
                     
                     
                        
                        19
                            Using Oracle Flashback Technology
                     
                        
                     
                     
                     
- 19.1 Overview of Oracle Flashback Technology
 - 19.2 Configuring Your Database for Oracle Flashback Technology
 - 19.3 Using Oracle Flashback Query (SELECT AS OF)
 - 19.4 Using Oracle Flashback Version Query
 - 19.5 Using Oracle Flashback Transaction Query
 - 19.6 Using Oracle Flashback Transaction Query with Oracle Flashback Version Query
 - 19.7 Using DBMS_FLASHBACK Package
 - 19.8 Using Flashback Transaction
 - 
                           
                           
                              
                              19.9
                                  Using Flashback Data Archive
                           
                              
                           
                           
                           
- 19.9.1 Creating a Flashback Data Archive
 - 19.9.2 Altering a Flashback Data Archive
 - 19.9.3 Dropping a Flashback Data Archive
 - 19.9.4 Specifying the Default Flashback Data Archive
 - 19.9.5 Enabling and Disabling Flashback Data Archive
 - 19.9.6 DDL Statements on Tables Enabled for Flashback Data Archive
 - 19.9.7 Viewing Flashback Data Archive Data
 - 
                                 
                                 
                                    
                                    19.9.8
                                        Flashback Data Archive Scenarios
                                 
                                    
                                 
                                 
                                 
- 19.9.8.1 Scenario: Using Flashback Data Archive to Enforce Digital Shredding
 - 19.9.8.2 Scenario: Using Flashback Data Archive to Access Historical Data
 - 19.9.8.3 Scenario: Using Flashback Data Archive to Generate Reports
 - 19.9.8.4 Scenario: Using Flashback Data Archive for Auditing
 - 19.9.8.5 Scenario: Using Flashback Data Archive to Recover Data
 
 
 - 19.10 General Guidelines for Oracle Flashback Technology
 - 19.11 Performance Guidelines for Oracle Flashback Technology
 - 19.12 Multitenant Container Database Restrictions for Oracle Flashback Technology
 
 - 
                     
                     
                        
                        20
                            Choosing a Programming Environment
                     
                        
                     
                     
                     
- 20.1 Overview of Application Architecture
 - 20.2 Overview of the Program Interface
 - 20.3 Overview of PL/SQL
 - 20.4 Overview of Oracle Database Java Support
 - 20.5 Choosing PL/SQL or Java
 - 20.6 Overview of Precompilers
 - 20.7 Overview of OCI and OCCI
 - 20.8 Comparison of Precompilers and OCI
 - 20.9 Overview of Oracle Data Provider for .NET (ODP.NET)
 - 20.10 Overview of OraOLEDB
 
 - 
                     
                     
                        
                        21
                            Developing Applications with Multiple Programming Languages
                     
                        
                     
                     
                     
- 21.1 Overview of Multilanguage Programs
 - 21.2 What Is an External Procedure?
 - 21.3 Overview of Call Specification for External Procedures
 - 21.4 Loading External Procedures
 - 21.5 Publishing External Procedures
 - 21.6 Publishing Java Class Methods
 - 21.7 Publishing External C Procedures
 - 
                           
                           
                              
                              21.8
                                  Locations of Call Specifications
                           
                              
                           
                           
                           
- 21.8.1 Example: Locating a Call Specification in a PL/SQL Package
 - 21.8.2 Example: Locating a Call Specification in a PL/SQL Package Body
 - 21.8.3 Example: Locating a Call Specification in an ADT Specification
 - 21.8.4 Example: Locating a Call Specification in an ADT Body
 - 21.8.5 Example: Java with AUTHID
 - 21.8.6 Example: C with Optional AUTHID
 - 21.8.7 Example: Mixing Call Specifications in a Package
 
 - 21.9 Passing Parameters to External C Procedures with Call Specifications
 - 21.10 Running External Procedures with CALL Statements
 - 21.11 Handling Errors and Exceptions in Multilanguage Programs
 - 21.12 Using Service Routines with External C Procedures
 - 
                           
                           
                              
                              21.13
                                  Doing Callbacks with External C Procedures
                           
                              
                           
                           
                           
- 21.13.1 OCIExtProcGetEnv
 - 21.13.2 Object Support for OCI Callbacks
 - 21.13.3 Restrictions on Callbacks
 - 21.13.4 Debugging External C Procedures
 - 21.13.5 Example: Calling an External C Procedure
 - 21.13.6 Global Variables in External C Procedures
 - 21.13.7 Static Variables in External C Procedures
 - 21.13.8 Restrictions on External C Procedures
 
 
 - 
                     
                     
                        
                        22
                            Developing Applications with Oracle XA
                     
                        
                     
                     
                     
- 22.1 X/Open Distributed Transaction Processing (DTP)
 - 22.2 Oracle XA Library Subprograms
 - 
                           
                           
                              
                              22.3
                                  Developing and Installing XA Applications
                           
                              
                           
                           
                           
- 22.3.1 DBA or System Administrator Responsibilities
 - 22.3.2 Application Developer Responsibilities
 - 22.3.3 Defining the xa_open String
 - 22.3.4 Using Oracle XA with Precompilers
 - 22.3.5 Using Oracle XA with OCI
 - 22.3.6 Managing Transaction Control with Oracle XA
 - 22.3.7 Examples of Precompiler Applications
 - 22.3.8 Migrating Precompiler or OCI Applications to TPM Applications
 - 22.3.9 Managing Oracle XA Library Thread Safety
 - 22.3.10 Using the DBMS_XA Package
 
 - 22.4 Troubleshooting XA Applications
 - 22.5 Oracle XA Issues and Restrictions
 
 - 23 Developing Applications with the Publish-Subscribe Model
 - 
                     
                     
                        
                        24
                            Using the Oracle ODBC Driver
                     
                        
                     
                     
                     
- 24.1 About Oracle ODBC Driver
 - 24.2 For All Users
 - 24.3 For Advanced Users
 - 
                           
                           
                              
                              24.4
                                  For Programmers
                           
                              
                           
                           
                           
- 24.4.1 Format of the Connection String
 - 24.4.2 SQLDriverConnect Implementation
 - 24.4.3 Reducing Lock Timeout in a Program
 - 24.4.4 Linking with odbc32.lib (Windows) or libodbc.so (UNIX)
 - 24.4.5 Information About rowids
 - 24.4.6 Rowids in a WHERE Clause
 - 24.4.7 Enabling Result Sets
 - 24.4.8 Enabling EXEC Syntax
 - 24.4.9 Enabling Event Notification for Connection Failures in an Oracle RAC Environment
 - 24.4.10 Using Implicit Results Feature Through ODBC
 - 24.4.11 About Supporting Oracle TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE Column Type in ODBC
 - 24.4.12 About the Effect of Setting ORA_SDTZ in Oracle Clients (OCI, SQL*Plus, Oracle ODBC driver, and Others)
 - 24.4.13 Supported Functionality
 - 24.4.14 Unicode Support
 - 24.4.15 Performance and Tuning
 
 
 - 
                     
                     
                        
                        25
                            Using the Identity Code Package
                     
                        
                     
                     
                     
- 25.1 Identity Concepts
 - 25.2 What Is the Identity Code Package?
 - 
                           
                           
                              
                              25.3
                                  Using the Identity Code Package
                           
                              
                           
                           
                           
- 
                                 
                                 
                                    
                                    25.3.1
                                        Storing RFID Tags in Oracle Database Using MGD_ID ADT
                                 
                                    
                                 
                                 
                                 
- 25.3.1.1 Creating a Table with MGD_ID Column Type and Storing EPC Tag Encodings in the Column
 - 
                                       
                                       
                                          
                                          25.3.1.2
                                              Constructing MGD_ID Objects to Represent RFID Tags
                                       
                                          
                                       
                                       
                                       
- 25.3.1.2.1 Constructing an MGD_ID Object (SGTIN-64) Passing in the Category ID and a List of Components
 - 25.3.1.2.2 Constructing an MGD_ID object (SGTIN-64) and Passing in the Category ID, the Tag Identifier, and the List of Additional Required Parameters
 - 25.3.1.2.3 Constructing an MGD_ID object (SGTIN-64) and Passing in the Category Name, Category Version (if null, then the latest version is used), and a List of Components
 - 25.3.1.2.4 Constructing an MGD_ID object (SGTIN-64) and Passing in the Category Name and Category Version, the Tag Identifier, and the List of Additional Required Parameters
 
 - 25.3.1.3 Inserting an MGD_ID Object into a Database Table
 - 25.3.1.4 Querying MGD_ID Column Type
 
 - 25.3.2 Building a Function-Based Index Using the Member Functions of the MGD_ID Column Type
 - 25.3.3 Using MGD_ID ADT Functions
 - 25.3.4 Defining a Category of Identity Codes and Adding Encoding Schemes to an Existing Category
 
 - 
                                 
                                 
                                    
                                    25.3.1
                                        Storing RFID Tags in Oracle Database Using MGD_ID ADT
                                 
                                    
                                 
                                 
                                 
 - 25.4 Identity Code Package Types
 - 25.5 DBMS_MGD_ID_UTL Package
 - 25.6 Identity Code Metadata Tables and Views
 - 
                           
                           
                              
                              25.7
                                  Electronic Product Code (EPC) Concepts
                           
                              
                           
                           
                           
- 25.7.1 RFID Technology and EPC v1.1 Coding Schemes
 - 
                                 
                                 
                                    
                                    25.7.2
                                        Product Code Concepts and Their Current Use
                                 
                                    
                                 
                                 
                                 
- 25.7.2.1 Electronic Product Code (EPC)
 - 25.7.2.2 Global Trade Identification Number (GTIN) and Serializable Global Trade Identification Number (SGTIN)
 - 25.7.2.3 Serial Shipping Container Code (SSCC)
 - 25.7.2.4 Global Location Number (GLN) and Serializable Global Location Number (SGLN)
 - 25.7.2.5 Global Returnable Asset Identifier (GRAI)
 - 25.7.2.6 Global Individual Asset Identifier (GIAI)
 - 25.7.2.7 RFID EPC Network
 
 
 - 25.8 Oracle Database Tag Data Translation Schema
 
 - 
                     
                     
                        
                        26
                            Understanding Schema Object Dependency
                     
                        
                     
                     
                     
- 26.1 Overview of Schema Object Dependency
 - 26.2 Querying Object Dependencies
 - 26.3 Object Status
 - 26.4 Invalidation of Dependent Objects
 - 26.5 Guidelines for Reducing Invalidation
 - 26.6 Object Revalidation
 - 26.7 Name Resolution in Schema Scope
 - 26.8 Local Dependency Management
 - 26.9 Remote Dependency Management
 - 26.10 Remote Procedure Call (RPC) Dependency Management
 - 26.11 Shared SQL Dependency Management
 
 - 
                     
                     
                        
                        27
                            Using Edition-Based Redefinition
                     
                        
                     
                     
                     
- 27.1 Overview of Edition-Based Redefinition
 - 
                           
                           
                              
                              27.2
                                  Editions
                           
                              
                           
                           
                           
- 
                                 
                                 
                                    
                                    27.2.1
                                        Editioned and Noneditioned Objects
                                 
                                    
                                 
                                 
                                 
- 27.2.1.1 Name Resolution for Editioned and Noneditioned Objects
 - 27.2.1.2 Noneditioned Objects That Can Depend on Editioned Objects
 - 27.2.1.3 Editionable and Noneditionable Schema Object Types
 - 27.2.1.4 Enabling Editions for a User
 - 27.2.1.5 EDITIONABLE and NONEDITIONABLE Properties
 - 27.2.1.6 Rules for Editioned Objects
 
 - 27.2.2 Creating an Edition
 - 27.2.3 Editioned Objects and Copy-on-Change
 - 27.2.4 Making an Edition Available to Some Users
 - 27.2.5 Making an Edition Available to All Users
 - 27.2.6 Current Edition and Session Edition
 - 27.2.7 Retiring an Edition
 - 27.2.8 Dropping an Edition
 
 - 
                                 
                                 
                                    
                                    27.2.1
                                        Editioned and Noneditioned Objects
                                 
                                    
                                 
                                 
                                 
 - 
                           
                           
                              
                              27.3
                                  Editioning Views
                           
                              
                           
                           
                           
- 27.3.1 Creating an Editioning View
 - 27.3.2 Partition-Extended Editioning View Names
 - 27.3.3 Changing the Writability of an Editioning View
 - 27.3.4 Revoking Privileges on Editioning Views
 - 27.3.5 Replacing an Editioning View
 - 27.3.6 Dropped or Renamed Base Tables
 - 27.3.7 Adding Indexes and Constraints to the Base Table
 - 27.3.8 SQL Optimizer Index Hints
 
 - 
                           
                           
                              
                              27.4
                                  Crossedition Triggers
                           
                              
                           
                           
                           
- 27.4.1 Forward Crossedition Triggers
 - 27.4.2 Reverse Crossedition Triggers
 - 27.4.3 Crossedition Trigger Interaction with Editions
 - 27.4.4 Creating a Crossedition Trigger
 - 27.4.5 Transforming Data from Pre- to Post-Upgrade Representation
 - 27.4.6 Dropping the Crossedition Triggers
 
 - 27.5 Displaying Information About EBR Features
 - 
                           
                           
                              
                              27.6
                                  Using EBR to Upgrade an Application
                           
                              
                           
                           
                           
- 27.6.1 Preparing Your Application to Use Editioning Views
 - 27.6.2 Procedure for EBR Using Only Editions
 - 27.6.3 Procedure for EBR Using Editioning Views
 - 27.6.4 Procedure for EBR Using Crossedition Triggers
 - 27.6.5 Rolling Back the Application Upgrade
 - 27.6.6 Reclaiming Space Occupied by Unused Table Columns
 - 
                                 
                                 
                                    
                                    27.6.7
                                        Example: Using EBR to Upgrade an Application
                                 
                                    
                                 
                                 
                                 
- 27.6.7.1 Existing Application
 - 27.6.7.2 Preparing the Application to Use Editioning Views
 - 
                                       
                                       
                                          
                                          27.6.7.3
                                              Using EBR to Upgrade the Example Application
                                       
                                          
                                       
                                       
                                       
- 27.6.7.3.1 Example: Creating an Edition in Which to Upgrade the Example Application
 - 27.6.7.3.2 Example: Changing the Table and Replacing the Editioning View
 - 27.6.7.3.3 Example: Creating and Enabling the Crossedition Triggers
 - 27.6.7.3.4 Example: Applying the Transforms
 - 27.6.7.3.5 Example: Viewing Data in the Changed Table
 
 
 
 
 - 
                     
                     
                        
                        28
                            Using Transaction Guard
                     
                        
                     
                     
                     
- 28.1 Problem That Transaction Guard Solves
 - 28.2 Solution That Transaction Guard Provides
 - 28.3 Transaction Guard Concepts and Scope
 - 28.4 Database Configuration for Transaction Guard
 - 
                           
                           
                              
                              28.5
                                  Developing Applications That Use Transaction Guard
                           
                              
                           
                           
                           
- 28.5.1 Typical Transaction Guard Usage
 - 28.5.2 Details for Using the LTXID
 - 28.5.3 Transaction Guard and Transparent Application Failover
 - 28.5.4 Using Transaction Guard with ODP.NET
 - 28.5.5 Connection-Pool LTXID Usage
 - 28.5.6 Improved Commit Outcome for XA One Phase Optimizations
 - 28.5.7 Additional Requirements for Transaction Guard Development
 
 - 28.6 Transaction Guard and Its Relationship to Application Continuity
 
 
 - 
                     
                     
                        
                        19
                            Using Oracle Flashback Technology
                     
                        
                     
                     
                     
 - Index