Table of Contents
- List of Tables
- Title and Copyright Information
- Preface
- 1 Changes in This Release for Oracle Database Development Guide
-
Part I Database Development Fundamentals
- 2 Design Basics
- 3 Connection Strategies for Database Applications
-
4
Performance and Scalability
- 4.1 Performance Strategies
- 4.2 Tools for Performance
- 4.3 Monitoring Database Performance
- 4.4 Testing for Performance
-
4.5
Using Client Result Cache
- 4.5.1 About Client Result Cache
- 4.5.2 Benefits of Client Result Cache
- 4.5.3 Guidelines for Using Client Result Cache
- 4.5.4 Client Result Cache Consistency
- 4.5.5 Deployment-Time Settings for Client Result Cache
- 4.5.6 Client Result Cache Statistics
- 4.5.7 Validation of Client Result Cache
- 4.5.8 Client Result Cache and Server Result Cache
- 4.5.9 Client Result Cache Demo Files
- 4.5.10 Client Result Cache Compatibility with Previous Releases
- 4.6 Statement Caching
- 4.7 OCI Client Statement Cache Auto-Tuning
- 4.8 Client-Side Deployment Parameters
- 4.9 Using Query Change Notification
-
4.10
Using Database Resident Connection Pool
- 4.10.1 About Database Resident Connection Pool
- 4.10.2 Configuring DRCP
- 4.10.3 Sharing Proxy Sessions
- 4.10.4 Using JDBC with DRCP
- 4.10.5 Using OCI Session Pool APIs with DRCP
- 4.10.6 Session Purity
- 4.10.7 Connection Class
- 4.10.8 Session Purity and Connection Class Defaults
- 4.10.9 Setting the Purity and Connection Class in the Connection String
- 4.10.10 Starting Database Resident Connection Pool
- 4.10.11 Enabling DRCP
- 4.10.12 Benefiting from the Scalability of DRCP in an OCI Application
- 4.10.13 Benefiting from the Scalability of DRCP in a Java Application
- 4.10.14 Best Practices for Using DRCP
- 4.10.15 Compatibility and Migration
- 4.10.16 Using DRCP with Oracle Database Native Network Encryption
- 4.10.17 DRCP Restrictions
- 4.10.18 Using DRCP with Custom Pools
- 4.10.19 Explicitly Marking Sessions Stateful or Stateless
- 4.10.20 Using DRCP with Oracle Real Application Clusters
- 4.10.21 DRCP with Data Guard
- 4.11 Memoptimize Pool
- 4.12 Oracle RAC Sharding
- 5 Designing Applications for Oracle Real-World Performance
-
6
Security
- 6.1 Enabling User Access with Grants, Roles, and Least Privilege
- 6.2 Automating Database Logins
- 6.3 Controlling User Access with Fine-Grained Access Control
- 6.4 Using Invoker's and Definer's Rights for Procedures and Functions
- 6.5 Managing External Procedures for Your Applications
- 6.6 Auditing User Activity
-
7
High Availability
- 7.1 Transparent Application Failover (TAF)
- 7.2 Oracle Connection Manager in Traffic Director Mode
- 7.3 About Fast Application Notification (FAN)
- 7.4 About Fast Connection Failover (FCF)
- 7.5 About Application Continuity
- 7.6 About Transaction Guard
- 7.7 About Service and Load Management for Database Clouds
- 8 Advanced PL/SQL Features
-
Part II SQL for Application Developers
-
9
SQL Processing for Application Developers
- 9.1 Description of SQL Statement Processing
- 9.2 Grouping Operations into Transactions
- 9.3 Ensuring Repeatable Reads with Read-Only Transactions
- 9.4 Locking Tables Explicitly
- 9.5 Using Oracle Lock Management Services (User Locks)
- 9.6 Using Serializable Transactions for Concurrency Control
- 9.7 Nonblocking and Blocking DDL Statements
- 9.8 Autonomous Transactions
- 9.9 Resuming Execution After Storage Allocation Errors
-
10
Using SQL Data Types in Database Applications
- 10.1 Using the Correct and Most Specific Data Type
- 10.2 Representing Character Data
-
10.3
Representing Numeric Data
- 10.3.1 Floating-Point Number Components
- 10.3.2 Floating-Point Number Formats
- 10.3.3 Representing Special Values with Native Floating-Point Data Types
- 10.3.4 Comparing Native Floating-Point Values
- 10.3.5 Arithmetic Operations with Native Floating-Point Data Types
- 10.3.6 Conversion Functions for Native Floating-Point Data Types
- 10.3.7 Client Interfaces for Native Floating-Point Data Types
- 10.4 Representing Date and Time Data
- 10.5 Representing Specialized Data
- 10.6 Identifying Rows by Address
- 10.7 Displaying Metadata for SQL Operators and Functions
- 11 Using Regular Expressions in Database Applications
-
12
Using Indexes in Database Applications
- 12.1 Guidelines for Managing Indexes
- 12.2 Managing Indexes
- 12.3 When to Use Domain Indexes
-
12.4
When to Use Function-Based Indexes
- 12.4.1 Advantages of Function-Based Indexes
- 12.4.2 Disadvantages of Function-Based Indexes
- 12.4.3 Example: Function-Based Index for Precomputing Arithmetic Expression
- 12.4.4 Example: Function-Based Indexes on Object Column
- 12.4.5 Example: Function-Based Index for Faster Case-Insensitive Searches
- 12.4.6 Example: Function-Based Index for Language-Dependent Sorting
-
13
Maintaining Data Integrity in Database Applications
- 13.1 Enforcing Business Rules with Constraints
- 13.2 Enforcing Business Rules with Both Constraints and Application Code
- 13.3 Creating Indexes for Use with Constraints
- 13.4 When to Use NOT NULL Constraints
- 13.5 When to Use Default Column Values
- 13.6 Choosing a Primary Key for a Table (PRIMARY KEY Constraint)
- 13.7 When to Use UNIQUE Constraints
- 13.8 Enforcing Referential Integrity with FOREIGN KEY Constraints
- 13.9 Minimizing Space and Time Overhead for Indexes Associated with Constraints
- 13.10 Guidelines for Indexing Foreign Keys
- 13.11 Referential Integrity in a Distributed Database
- 13.12 When to Use CHECK Constraints
- 13.13 Examples of Defining Constraints
- 13.14 Enabling and Disabling Constraints
- 13.15 Modifying Constraints
- 13.16 Renaming Constraints
- 13.17 Dropping Constraints
- 13.18 Managing FOREIGN KEY Constraints
- 13.19 Viewing Information About Constraints
-
9
SQL Processing for Application Developers
-
Part III PL/SQL for Application Developers
-
14
Coding PL/SQL Subprograms and Packages
- 14.1 Overview of PL/SQL Subprograms
- 14.2 Overview of PL/SQL Packages
- 14.3 Overview of PL/SQL Units
-
14.4
Creating PL/SQL Subprograms and Packages
- 14.4.1 Privileges Needed to Create Subprograms and Packages
- 14.4.2 Creating Subprograms and Packages
- 14.4.3 PL/SQL Object Size Limits
- 14.4.4 PL/SQL Data Types
- 14.4.5 Returning Result Sets to Clients
- 14.4.6 Returning Large Amounts of Data from a Function
- 14.4.7 PL/SQL Function Result Cache
- 14.4.8 Overview of Bulk Binding
- 14.4.9 PL/SQL Dynamic SQL
- 14.5 Altering PL/SQL Subprograms and Packages
- 14.6 Deprecating Packages, Subprograms, and Types
- 14.7 Dropping PL/SQL Subprograms and Packages
- 14.8 Compiling PL/SQL Units for Native Execution
- 14.9 Invoking Stored PL/SQL Subprograms
-
14.10
Invoking Stored PL/SQL Functions from SQL Statements
- 14.10.1 Why Invoke PL/SQL Functions from SQL Statements?
- 14.10.2 Where PL/SQL Functions Can Appear in SQL Statements
- 14.10.3 When PL/SQL Functions Can Appear in SQL Expressions
- 14.10.4 Controlling Side Effects of PL/SQL Functions Invoked from SQL Statements
- 14.11 Analyzing and Debugging Stored Subprograms
- 14.12 Package Invalidations and Session State
- 14.13 Example: Raising an ORA-04068 Error
- 14.14 Example: Trapping ORA-04068
-
15
Using PL/Scope
- 15.1 Overview of PL/Scope
- 15.2 Privileges Required for Using PL/Scope
- 15.3 Specifying Identifier and Statement Collection
- 15.4 How Much Space is PL/Scope Data Using?
- 15.5 Viewing PL/Scope Data
- 15.6 Overview of Data Dictionary Views Useful to Manage PL/SQL Code
- 15.7 Sample PL/Scope Session
-
16
Using the PL/SQL Hierarchical Profiler
- 16.1 Overview of PL/SQL Hierarchical Profiler
- 16.2 Collecting Profile Data
- 16.3 Understanding Raw Profiler Output
- 16.4 Analyzing Profile Data
- 16.5 plshprof Utility
- 17 Using PL/SQL Basic Block Coverage to Maintain Quality
-
18
Developing PL/SQL Web Applications
- 18.1 Overview of PL/SQL Web Applications
- 18.2 Implementing PL/SQL Web Applications
- 18.3 Using mod_plsql Gateway to Map Client Requests to a PL/SQL Web Application
-
18.4
Using Embedded PL/SQL Gateway
- 18.4.1 How Embedded PL/SQL Gateway Processes Client Requests
- 18.4.2 Installing Embedded PL/SQL Gateway
-
18.4.3
Configuring Embedded PL/SQL Gateway
- 18.4.3.1 Configuring Embedded PL/SQL Gateway: Overview
-
18.4.3.2
Configuring User Authentication for Embedded PL/SQL Gateway
- 18.4.3.2.1 Configuring Static Authentication with DBMS_EPG
- 18.4.3.2.2 Configuring Dynamic Authentication with DBMS_EPG
- 18.4.3.2.3 Configuring Anonymous Authentication with DBMS_EPG
- 18.4.3.2.4 Determining the Authentication Mode of a DAD
- 18.4.3.2.5 Examples: Creating and Configuring DADs
- 18.4.3.2.6 Example: Determining the Authentication Mode for a DAD
- 18.4.3.2.7 Example: Determining the Authentication Mode for All DADs
- 18.4.3.2.8 Example: Showing DAD Authorizations that Are Not in Effect
- 18.4.3.2.9 Examining Embedded PL/SQL Gateway Configuration
- 18.4.4 Invoking PL/SQL Stored Subprograms Through Embedded PL/SQL Gateway
- 18.4.5 Securing Application Access with Embedded PL/SQL Gateway
- 18.4.6 Restrictions in Embedded PL/SQL Gateway
- 18.4.7 Using Embedded PL/SQL Gateway: Scenario
- 18.5 Generating HTML Output with PL/SQL
-
18.6
Passing Parameters to PL/SQL Web Applications
- 18.6.1 Passing List and Dropdown-List Parameters from an HTML Form
- 18.6.2 Passing Option and Check Box Parameters from an HTML Form
- 18.6.3 Passing Entry-Field Parameters from an HTML Form
- 18.6.4 Passing Hidden Parameters from an HTML Form
- 18.6.5 Uploading a File from an HTML Form
- 18.6.6 Submitting a Completed HTML Form
- 18.6.7 Handling Missing Input from an HTML Form
- 18.6.8 Maintaining State Information Between Web Pages
- 18.7 Performing Network Operations in PL/SQL Subprograms
-
19
Using Continuous Query Notification (CQN)
- 19.1 About Object Change Notification (OCN)
- 19.2 About Query Result Change Notification (QRCN)
- 19.3 Events that Generate Notifications
- 19.4 Notification Contents
- 19.5 Good Candidates for CQN
- 19.6 Creating CQN Registrations
-
19.7
Using PL/SQL to Create CQN Registrations
- 19.7.1 PL/SQL CQN Registration Interface
-
19.7.2
CQN Registration Options
- 19.7.2.1 Notification Type Option
- 19.7.2.2 QRCN Mode (QRCN Notification Type Only)
- 19.7.2.3 ROWID Option
- 19.7.2.4 Operations Filter Option (OCN Notification Type Only)
- 19.7.2.5 Transaction Lag Option (OCN Notification Type Only)
- 19.7.2.6 Notification Grouping Options
- 19.7.2.7 Reliable Option
- 19.7.2.8 Purge-on-Notify and Timeout Options
- 19.7.3 Prerequisites for Creating CQN Registrations
- 19.7.4 Queries that Can Be Registered for Object Change Notification (OCN)
- 19.7.5 Queries that Can Be Registered for Query Result Change Notification (QRCN)
- 19.7.6 Using PL/SQL to Register Queries for CQN
- 19.7.7 Best Practices for CQN Registrations
- 19.7.8 Troubleshooting CQN Registrations
- 19.7.9 Deleting Registrations
- 19.7.10 Configuring CQN: Scenario
-
19.8
Using OCI to Create CQN Registrations
- 19.8.1 Using OCI for Query Result Set Notifications
- 19.8.2 Using OCI to Register a Continuous Query Notification
- 19.8.3 Using OCI for Client Initiated CQN Registrations
- 19.8.4 Using OCI Subscription Handle Attributes for Continuous Query Notification
- 19.8.5 OCI_ATTR_CQ_QUERYID Attribute
- 19.8.6 Using OCI Continuous Query Notification Descriptors
- 19.8.7 Demonstrating Continuous Query Notification in an OCI Sample Program
- 19.9 Querying CQN Registrations
- 19.10 Interpreting Notifications
-
14
Coding PL/SQL Subprograms and Packages
-
Part IV Advanced Topics for Application Developers
-
20
Using Oracle Flashback Technology
- 20.1 Overview of Oracle Flashback Technology
- 20.2 Configuring Your Database for Oracle Flashback Technology
- 20.3 Using Oracle Flashback Query (SELECT AS OF)
- 20.4 Using Oracle Flashback Version Query
- 20.5 Using Oracle Flashback Transaction Query
- 20.6 Using Oracle Flashback Transaction Query with Oracle Flashback Version Query
- 20.7 Using DBMS_FLASHBACK Package
- 20.8 Using Flashback Transaction
-
20.9
Using Flashback Data Archive
- 20.9.1 DDL Statements on Tables Enabled for Flashback Archive
- 20.9.2 Creating a Flashback Archive
- 20.9.3 Altering a Flashback Archive
- 20.9.4 Dropping a Flashback Archive
- 20.9.5 Specifying the Default Flashback Archive
- 20.9.6 Enabling and Disabling Flashback Archive
- 20.9.7 Viewing Flashback Archive Data
- 20.9.8 Transporting Flashback Archive Data between Databases
-
20.9.9
Flashback Data Archive Scenarios
- 20.9.9.1 Scenario: Using Flashback Data Archive to Enforce Digital Shredding
- 20.9.9.2 Scenario: Using Flashback Data Archive to Access Historical Data
- 20.9.9.3 Scenario: Using Flashback Data Archive to Generate Reports
- 20.9.9.4 Scenario: Using Flashback Data Archive for Auditing
- 20.9.9.5 Scenario: Using Flashback Data Archive to Recover Data
- 20.10 General Guidelines for Oracle Flashback Technology
- 20.11 Oracle Virtual Private Database Policies and Oracle Flashback Data Archive
- 20.12 Performance Guidelines for Oracle Flashback Technology
- 20.13 Multitenant Container Database Restrictions for Oracle Flashback Technology
-
21
Choosing a Programming Environment
- 21.1 Overview of Application Architecture
- 21.2 Overview of the Program Interface
- 21.3 Overview of PL/SQL
- 21.4 Overview of Oracle Database Java Support
- 21.5 Choosing PL/SQL or Java
- 21.6 Overview of Precompilers
- 21.7 Overview of OCI and OCCI
- 21.8 Comparison of Precompilers and OCI
- 21.9 Overview of Oracle Data Provider for .NET (ODP.NET)
- 21.10 Overview of OraOLEDB
-
22
Developing Applications with Multiple Programming Languages
- 22.1 Overview of Multilanguage Programs
- 22.2 What Is an External Procedure?
- 22.3 Overview of Call Specification for External Procedures
- 22.4 Loading External Procedures
- 22.5 Publishing External Procedures
- 22.6 Publishing Java Class Methods
- 22.7 Publishing External C Procedures
-
22.8
Locations of Call Specifications
- 22.8.1 Example: Locating a Call Specification in a PL/SQL Package
- 22.8.2 Example: Locating a Call Specification in a PL/SQL Package Body
- 22.8.3 Example: Locating a Call Specification in an ADT Specification
- 22.8.4 Example: Locating a Call Specification in an ADT Body
- 22.8.5 Example: Java with AUTHID
- 22.8.6 Example: C with Optional AUTHID
- 22.8.7 Example: Mixing Call Specifications in a Package
- 22.9 Passing Parameters to External C Procedures with Call Specifications
- 22.10 Running External Procedures with CALL Statements
- 22.11 Handling Errors and Exceptions in Multilanguage Programs
- 22.12 Using Service Routines with External C Procedures
-
22.13
Doing Callbacks with External C Procedures
- 22.13.1 OCIExtProcGetEnv
- 22.13.2 Object Support for OCI Callbacks
- 22.13.3 Restrictions on Callbacks
- 22.13.4 Debugging External C Procedures
- 22.13.5 Example: Calling an External C Procedure
- 22.13.6 Global Variables in External C Procedures
- 22.13.7 Static Variables in External C Procedures
- 22.13.8 Restrictions on External C Procedures
-
23
Developing Applications with Oracle XA
- 23.1 X/Open Distributed Transaction Processing (DTP)
- 23.2 Oracle XA Library Subprograms
-
23.3
Developing and Installing XA Applications
- 23.3.1 DBA or System Administrator Responsibilities
- 23.3.2 Application Developer Responsibilities
- 23.3.3 Defining the xa_open String
- 23.3.4 Using Oracle XA with Precompilers
- 23.3.5 Using Oracle XA with OCI
- 23.3.6 Managing Transaction Control with Oracle XA
- 23.3.7 Examples of Precompiler Applications
- 23.3.8 Migrating Precompiler or OCI Applications to TPM Applications
- 23.3.9 Managing Oracle XA Library Thread Safety
- 23.3.10 Using the DBMS_XA Package
- 23.4 Troubleshooting XA Applications
-
23.5
Oracle XA Issues and Restrictions
- 23.5.1 Using Database Links in Oracle XA Applications
- 23.5.2 Managing Transaction Branches in Oracle XA Applications
-
23.5.3
Using Oracle XA with Oracle Real Application Clusters (Oracle RAC)
- 23.5.3.1 Oracle RAC XA Limitations
- 23.5.3.2 GLOBAL_TXN_PROCESSES Initialization Parameter
- 23.5.3.3 Managing Transaction Branches on Oracle RAC
- 23.5.3.4 Managing Instance Recovery in Oracle RAC with DTP Services (10.2)
- 23.5.3.5 Global Uniqueness of XIDs in Oracle RAC
- 23.5.3.6 Tight and Loose Coupling
- 23.5.4 SQL-Based Oracle XA Restrictions
- 23.5.5 Miscellaneous Restrictions
- 24 Developing Applications with the Publish-Subscribe Model
-
25
Using the Oracle ODBC Driver
- 25.1 About Oracle ODBC Driver
- 25.2 For All Users
- 25.3 For Advanced Users
-
25.4
For Programmers
- 25.4.1 Format of the Connection String
- 25.4.2 SQLDriverConnect Implementation
- 25.4.3 Reducing Lock Timeout in a Program
- 25.4.4 Linking with odbc32.lib (Windows) or libodbc.so (UNIX)
- 25.4.5 Information About rowids
- 25.4.6 Rowids in a WHERE Clause
- 25.4.7 Enabling Result Sets
- 25.4.8 Enabling EXEC Syntax
- 25.4.9 Enabling Event Notification for Connection Failures in an Oracle RAC Environment
- 25.4.10 Using Implicit Results Feature Through ODBC
- 25.4.11 About Supporting Oracle TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE Column Type in ODBC
- 25.4.12 About the Effect of Setting ORA_SDTZ in Oracle Clients (OCI, SQL*Plus, Oracle ODBC Driver, and Others)
- 25.4.13 Supported Functionality
- 25.4.14 Unicode Support
- 25.4.15 Performance and Tuning
-
26
Using the Identity Code Package
- 26.1 Identity Concepts
- 26.2 What Is the Identity Code Package?
-
26.3
Using the Identity Code Package
-
26.3.1
Storing RFID Tags in Oracle Database Using MGD_ID ADT
- 26.3.1.1 Creating a Table with MGD_ID Column Type and Storing EPC Tag Encodings in the Column
-
26.3.1.2
Constructing MGD_ID Objects to Represent RFID Tags
- 26.3.1.2.1 Constructing an MGD_ID Object (SGTIN-64) Passing in the Category ID and a List of Components
- 26.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
- 26.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
- 26.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
- 26.3.1.3 Inserting an MGD_ID Object into a Database Table
- 26.3.1.4 Querying MGD_ID Column Type
- 26.3.2 Building a Function-Based Index Using the Member Functions of the MGD_ID Column Type
- 26.3.3 Using MGD_ID ADT Functions
- 26.3.4 Defining a Category of Identity Codes and Adding Encoding Schemes to an Existing Category
-
26.3.1
Storing RFID Tags in Oracle Database Using MGD_ID ADT
- 26.4 Identity Code Package Types
- 26.5 DBMS_MGD_ID_UTL Package
- 26.6 Identity Code Metadata Tables and Views
-
26.7
Electronic Product Code (EPC) Concepts
- 26.7.1 RFID Technology and EPC v1.1 Coding Schemes
-
26.7.2
Product Code Concepts and Their Current Use
- 26.7.2.1 Electronic Product Code (EPC)
- 26.7.2.2 Global Trade Identification Number (GTIN) and Serializable Global Trade Identification Number (SGTIN)
- 26.7.2.3 Serial Shipping Container Code (SSCC)
- 26.7.2.4 Global Location Number (GLN) and Serializable Global Location Number (SGLN)
- 26.7.2.5 Global Returnable Asset Identifier (GRAI)
- 26.7.2.6 Global Individual Asset Identifier (GIAI)
- 26.7.2.7 RFID EPC Network
- 26.8 Oracle Database Tag Data Translation Schema
-
27
Understanding Schema Object Dependency
- 27.1 Overview of Schema Object Dependency
- 27.2 Querying Object Dependencies
- 27.3 Object Status
- 27.4 Invalidation of Dependent Objects
- 27.5 Guidelines for Reducing Invalidation
- 27.6 Object Revalidation
- 27.7 Name Resolution in Schema Scope
- 27.8 Local Dependency Management
- 27.9 Remote Dependency Management
- 27.10 Remote Procedure Call (RPC) Dependency Management
- 27.11 Shared SQL Dependency Management
-
28
Using Edition-Based Redefinition
- 28.1 Overview of Edition-Based Redefinition
-
28.2
Editions
-
28.2.1
Editioned and Noneditioned Objects
- 28.2.1.1 Name Resolution for Editioned and Noneditioned Objects
- 28.2.1.2 Noneditioned Objects That Can Depend on Editioned Objects
- 28.2.1.3 Editionable and Noneditionable Schema Object Types
- 28.2.1.4 Enabling Editions for a User
- 28.2.1.5 EDITIONABLE and NONEDITIONABLE Properties
- 28.2.1.6 Rules for Editioned Objects
- 28.2.2 Creating an Edition
- 28.2.3 Editioned Objects and Copy-on-Change
- 28.2.4 Making an Edition Available to Some Users
- 28.2.5 Making an Edition Available to All Users
- 28.2.6 Current Edition and Session Edition
- 28.2.7 Retiring an Edition
- 28.2.8 Dropping an Edition
-
28.2.1
Editioned and Noneditioned Objects
- 28.3 Editions and Audit Policies
- 28.4 Editioning Views
-
28.5
Crossedition Triggers
- 28.5.1 Forward Crossedition Triggers
- 28.5.2 Reverse Crossedition Triggers
- 28.5.3 Crossedition Trigger Interaction with Editions
- 28.5.4 Creating a Crossedition Trigger
- 28.5.5 Transforming Data from Pre- to Post-Upgrade Representation
- 28.5.6 Dropping the Crossedition Triggers
- 28.6 Displaying Information About EBR Features
-
28.7
Using EBR to Upgrade an Application
- 28.7.1 Preparing Your Application to Use Editioning Views
- 28.7.2 Procedure for EBR Using Only Editions
- 28.7.3 Procedure for EBR Using Editioning Views
- 28.7.4 Procedure for EBR Using Crossedition Triggers
- 28.7.5 Rolling Back the Application Upgrade
- 28.7.6 Reclaiming Space Occupied by Unused Table Columns
-
28.7.7
Example: Using EBR to Upgrade an Application
- 28.7.7.1 Existing Application
- 28.7.7.2 Preparing the Application to Use Editioning Views
-
28.7.7.3
Using EBR to Upgrade the Example Application
- 28.7.7.3.1 Example: Creating an Edition in Which to Upgrade the Example Application
- 28.7.7.3.2 Example: Changing the Table and Replacing the Editioning View
- 28.7.7.3.3 Example: Creating and Enabling the Crossedition Triggers
- 28.7.7.3.4 Example: Applying the Transforms
- 28.7.7.3.5 Example: Viewing Data in the Changed Table
-
29
Using Transaction Guard
- 29.1 Problem That Transaction Guard Solves
- 29.2 Solution That Transaction Guard Provides
- 29.3 Transaction Guard Concepts and Scope
- 29.4 Database Configuration for Transaction Guard
-
29.5
Developing Applications That Use Transaction Guard
- 29.5.1 Typical Transaction Guard Usage
- 29.5.2 Details for Using the LTXID
- 29.5.3 Transaction Guard and Transparent Application Failover
- 29.5.4 Using Transaction Guard with ODP.NET
- 29.5.5 Connection-Pool LTXID Usage
- 29.5.6 Improved Commit Outcome for XA One Phase Optimizations
- 29.5.7 Additional Requirements for Transaction Guard Development
- 29.6 Transaction Guard and Its Relationship to Application Continuity
-
20
Using Oracle Flashback Technology
- Index