Skip Headers
Ora cle® Database Application Developer's Guide - Fundamentals
10
g
Release 1 (10.1)
Part Number B10795-01
Home
Book List
Index
Master Index
Feedback
Next
View PDF
C ontents
Title and Copyright Informatio n
Send Us Your Comment s
Preface
a>
Audience
Organization
Related Documentation
Conventions
Documentation Accessibility
What's New in Application Developmen t?
New Application Development Features in Oracle Database 10
g
Release 1
New Application Dev elopment Features in Oracle9
i
Release 2
New Applicat ion Development Features in Oracle9
i
Release 1
Part I Introduction to Application Development Features of Oracle Database
1 Programmatic Environments
a>
Overview of Developing an Oracle Dat abase Application
Overview of PL/SQL
A Simple PL/SQL Example
Advantages of PL/SQL
Full Support for SQL
Tight Integration with Oracle Database
Better Performance
Higher Productivity
Scalability
Maintainabilit y
PL/SQL Support for Object-Oriented Programming
Object Types
Collections
Portability
Security
Built-In Packages for Application Development
Built-In Packages for Server Management
Built-In Packages for Distributed Database Access
Overview of Java Support Built Into the Database
Overview of Oracle JVM
Overview of Oracle Extension s to JDBC
JDBC Thin Driver
JDBC OCI Driver
JDBC Server-Side Internal Driver a>
Oracle Database Extensions to JDBC Standards
Sample JDBC 2.0 Program
Sample Pre-2.0 JDBC Prog ram
JDBC in SQLJ Applications
Overview of Oracle SQLJ
Benefits of S QLJ
Comparing SQLJ with JDBC
SQLJ Stored Procedures in the Server
Overview of Orac le JPublisher
Overview of Java Stored Procedures
Overview of Database Web Services
Database as a Web Service Provider
Database as a Web Service Consumer
Overview of Writing Procedures and Functions in Java
Overview of Writing Database Triggers in Java
Why Use Java for Stored Procedures and Triggers?
Overview of Pro*C/C++
How You Implement a Pro*C/C++ Application
Highlights of Pro*C/C++ Features
Overview of Pro*COBOL
How You Implement a Pro*COBOL Application
Highlights of Pro*COBOL Features
Overview of OCI and OCCI
Advantages of OCI
Parts of the OCI
Procedural and Non-Procedural Elements
Building an OCI Application
Overview of Oracle Data P rovider for .NET (ODP.NET)
Using ODP.NET in a Simpl e Application
Overview of Oracle Objects for OLE (OO4O)
OO4O Automation Server
OO4O Object Model
OraSession
OraServer
OraDatabase
OraDynaset
OraField
OraMetaData and OraMDAttribute
OraParameters and OraParameter
OraParamArr ay
OraSQLStmt
Ora AQ
OraAQMsg
OraAQ Agent
Support for Oracle LOB and Object Datatypes
OraBLOB and OraCLOB
OraBFILE
Oracle Data Control
Oracle Objects for OLE C++ Class Library
Additiona l Sources of Information
Choosing a Programm ing Environment
Choosing Whether to Use OCI or a Pr ecompiler
Using Built-In Packages and Libraries
Java Compared to PL/SQL
PL/SQ L Is Optimized for Database Access
PL/SQL Is Integrated with the Database a>
Both Java and PL/SQL Have Object-Oriented Features
Java Is Used for Open Distributed Applications
Part II Designing the Database
2 Selecting a Datatype
Summary of Oracle Built-In Datatypes
< dd class="H1TOC">
Representing Character Data
Column Lengths for Single-Byte and Multibyte Character Sets
Implicit Conversion Between CHAR/VARCHAR2 and NCHAR/NVARCHAR2
Comparison Semantics
Representing Numeric Data with Number and Floating-Point Datatypes
Floating-Point Number System Concepts
About Floating-Point Formats
Representing Special Values with Nativ e Floating-Point Formats
Behavior of Special Values for Nati ve Floating-Point Datatypes
Rounding of Native Floating-Point Dat atypes
Comparison Operators for Native Floating-Point Datatypes
Arithmetic Operators for Native Floating-Point Datatypes
Conversion Functions for Native Floating-Point Datatypes
Exceptions for Native Floating-Point Datatypes
Client Interfaces for Native Floating-Point Datatypes
SQL Native Floating-Poi nt Datatypes
OCI Native Floating-Point Datatypes SQLT_BFLOAT and SQLT_BDOUB LE
Native Floating-Point Datatypes Supported in Oracle OBJECT Types
Pro*C/C++ Support for Native Floating-Point Datatypes
Storing Data Using the NUMBER Datatype
Representing Date and Time Data
Date Format
Checking If Two DATE Values Refe r to the Same Day
Displaying the Current Date and Time
Setting SYSDATE to a Constant Value
P rinting a Date with BC/AD Notation
Time Format
Performing Date Arithmetic
Converting Between Datetime Types
Handling Time Zones
Importing and Exporting Datetime Types
Establishing Year 2000 Compliance
Oracle S erver Year 2000 Compliance
Centuries and the Year 2000
Examples of The RR Date Format
Exampl es of The CC Date Format
Storing Dates in Character Datatypes
Viewing Date Settings
Altering Date Settings
Troubleshooting Y2K Problems in Applications
dd>
Representing Conditional Expressions as Data
< /strong>
Representing Geographic Coordinate Data
Representing Image, Audio, and Video Data
Representing Searchable Text Data
Representing Large Amounts of Data
Using RAW and LONG RAW Datatypes
Addressing Rows Directly with the ROWID Datatype
Extended ROWID Format
Different Forms of the ROWID
ROWID Pseudocolumn
dd>
Internal ROWID
Externa l Character ROWID
External Binary ROWID
ROWID Migration and Compatibility Issues
Accessing Oracle Database Version 7 from an Oracle9i Client
A ccessing an Oracle9i Database from a Client of Oracle Database Version 7
Im port and Export
ANSI/ISO , DB2, and SQL/DS Datatypes
How Oracle Databa se Converts Datatypes
Datatype Conversion During As signments
Datatype Conversion During Expression Evaluation
Representing Dynamically Typed Data
Representing XML Data
3 Maintaining Data Integrity Through Constraints
Overview of Integrity Constraints
When to Enforce Business Rules with Integrity Constraints a>
Example of an Integrity Constraint for a Business Rule
When to Enforce Business Rules in Applications
Creating Indexes for Use with Constraints
When to Use NOT NULL Integrity Constraints
When to Use Default Column Valu es
Setting Default Column Values
Choosing a Table's Primary Key
When to Use UNIQUE Key Integ rity Constraints
Constraints On Views: for Performance, Not Data Integrity< /a>
Enforcing Referential Integrity with Constra ints
About Nulls and Foreign Keys
Defining Relationships Between Parent and Child Tables
No Constraints on the Foreign Key
NOT NULL Constraint on the Foreign Key
UNIQUE Constraint on the Foreign Key
UNIQUE and NOT NULL Constraints on the Foreign Key
< /dd>
Rules for Multiple FOREIGN KEY Constraints
Deferring Constraint Checks
Guidelines for Deferring Constraint Checks
Select Appropriate Data
Ensure Constraints Are Created Deferrable
Set All Constraints Deferred
Chec k the Commit (Optional)
Managing Constraints That Have Associated Indexes
M inimizing Space and Time Overhead for Indexes Associated with Constraints
< a href="adfns_co.htm#1006515">Guidelines for Indexing Foreign Keys
About Referential Integrity in a Distributed Database
When to Use CHECK Integrity Constraints
Restrictions on CHECK Constraints
Designing CHECK Const raints
Rules for Multiple CHECK Constraints
Choosing Between CHECK and NOT NULL Integrity Constraints
Examples of Defining Integrity Constraints
Example: Defining Integrity Constraints with the CREATE TABLE Command
Example: Defining Constraints with the ALTER TABLE Command
Privileges Required to Create Constraints
Naming Integrity Cons traints
Enabling and Disabling Integrity Con straints
Why Disable Constr aints?
About Exceptions to Integrity Constraints
Enabling Constraints
Creating Disabled Cons traints
Enabling and Disabling Existing I ntegrity Constraints
Enabling Existing Constraints
Disabling Existing Constraints
Tip: Using the Data Dictionary to Find Constraints
Guideline s for Enabling and Disabling Key Integrity Constraints
Fixing Constraint Ex ceptions
Altering Integrity Constraints
< /strong>
Renaming Integrity Constraints
Dropping Integrity Constraints
< strong class="Bold">
Managing FOREIGN KEY Integrity Constraints
Datatypes and Names for Foreign Key Columns
Limit on Columns in Composite Foreign Keys
Foreign Key Referenc es Primary Key by Default
Privileges Required to Create FOREIGN KEY Integri ty Constraints
Choosing How Foreign Keys Enforce Referential Integrity
< /dd>
Viewing Definitions of Integrity Constraints
Examples of Defining Integrity Constraints
Example 1: Listing All of Your Accessible Const raints
Example 2: Distinguishing NOT NULL Constraints from CHECK Constraint s
Example 3: Listing Column Names that Constitute an Integrity Constraint a>
4 Selecting an Index Strategy
Guidelines for Application-Specific Indexes
Create Indexes After Inserting Table Data
Switch You r Temporary Tablespace to Avoid Space Problems Creating Indexes
Index the C orrect Tables and Columns
Limit the Number of Indexes for Each Table
Choose the Order of Columns in Composite Indexes
Gather Statistics to Make Index Usage More Accurate
Drop Indexes That Are No Longer Required
Privileges Required to Create a n Index
Creating Indexes: Basic Ex amples
When to Use Domain Indexes
When to Use Function-Based Indexes
Advantages of Function-Based Indexes
Examples of Function-Based Indexes
Ex ample: Function-Based Index for Case-Insensitive Searches
Example: Precompu ting Arithmetic Expressions with a Function-Based Index
Example: Function-B ased Index for Language-Dependent Sorting
Restrictions for Functi on-Based Indexes
5 How Oracle Database Processes SQL Statements
Overview of SQL Statement Execution
Identifying Extensions to SQL92 (FIPS Flagging)
Grouping Operations into Transactions
Imp roving Transaction Performance
Committing Transactions
Rolling Back Transactions
Defining Tr ansaction Savepoints
An Example of COMMIT, SAVEPOINT, and RO LLBACK
Privileges Required for Transaction Management
Ensuring Repeatable Reads with Read-Only Transactions a>
Using Cursors within Applications
Declaring and Opening Cursors
Using a Cursor to Execute Statements Again
Closing Cursors
Cancelling Cursors
Locking Data Explicitly
Choosing a Locking Strategy
When to Lock with ROW SHARE and ROW EXCLUSIVE Mode
When to Lock with SHARE Mode
When to Lock with SHARE ROW EXCLUSIVE Mode
When to Lock in EXCLUSIVE Mode
Privileges Required
dl>
Letting Oracle Database Control Table Locking
Explicitly Acquiring Row Locks
About User Locks
When to Use User L ocks
Example of a User Lock
Viewing and Monitoring Locks
Usin g Serializable Transactions for Concurrency Control
How Serializable Transactions Interact
Setting the Isolation Level of a Tr ansaction
The INITRANS Parameter
Referential Integrity and Serializable Transactions
Using SELECT FOR UPDATE
READ COM MITTED and SERIALIZABLE Isolation
Transaction Set Consistenc y
Comparison of READ COMMITTED and SERIALIZABLE Transactions
Choosing an Isolation Level for Transactions
Application Tips for Transactions
Autonomous Transactions
Examples of A utonomous Transactions
Entering a Buy Order
Example: Making a Bank Withdrawal
Defining Autonomous Transactions
Restrictions on Autonomous Tran sactions
Resuming Execution After a Storage Error Condition
What Operations Can Be Resumed Afte r an Error Condition?
Limitations on Resuming Operations After an Error Con dition
Writing an Application to Handle Suspended Storage Allocation
Example of Resumable Storage Allocation
6 Coding Dynamic SQL Statements
What Is Dynamic SQL?
Why Use Dynamic SQL?
Executing DDL and SCL Statements in PL/SQL
Execu ting Dynamic Queries
Referencing Database Objects that Do Not Exist at Comp ilation
Optimizing Execution Dynamically
Executing Dynamic PL/SQL Blocks
Performing Dynamic Operations Using Invoker's Rights
A Dynamic SQL Scenario Using Native Dynamic SQL
Sample DML Op eration Using Native Dynamic SQL
Sample DDL Operation Using Native Dynamic SQL
Sample Single-Row Query Using Native Dynamic SQL
Sample Multiple-Row Query Using Native Dynamic SQL
Choosing Between Native Dynamic SQL and the DBMS_SQL Package
Advantages of Native Dynamic SQL
Native Dynamic SQL is Easy to Use
Native Dynamic SQL is Faster than DBMS_SQL
Performance Tip: Using Bind Vari ables
Native Dynamic SQL Supports User-Defined Types
Native Dynamic SQL Supports Fetching Into Records
Advantages of the DBMS_SQL Package
DBMS_SQL is Supported in Client-Side Programs
DBMS_SQL Supports DESCR IBE
DBMS_SQL Supports SQL Statements Larger than 32KB
DBMS_SQL Lets You Reuse SQL Statements
Examples of DBMS_SQL Package Code and Native Dynamic SQL Code
Querying Using Dynamic SQL: Example
Performing DML Using Dynam ic SQL: Example
Performing DML with RETURNING Clause Using Dynamic SQL: Exa mple
Using Dynamic SQL in Language s Other Than PL/SQL
7 Using Procedures and Packages
Overview of PL/SQL Program Units
Anonymous Blocks
Stored Program Units (Procedures, Functions, and Packages)
Naming Procedures and Functions
Parameters for Procedures and Functions
Parameter Modes
Parameter Datatypes
%TYPE and %ROWTYPE Attributes
Tables and Records
Default Parameter Values
Creating Stored Procedures and Functions
Privile ges to Create Procedures and Functions
Altering Stored Procedures and Functions
Dropping Procedures and Functions
Privileges to Drop Procedures and Functions
External Procedures
PL/SQL Packages
Example of a PL/SQL Package Specification and Body
PL/SQL Object Size Limitation
Size Limitation by Version
Creating Packages
Creating Packaged Objects
Privileges to Create or Drop Packages
Naming Packages and Package Objects
Package Invalidations and Session State
Packages Supplied With Oracle Database
Overview of Bulk Binds
When to Use Bulk Binds
DML Statements that Reference Collections
SELECT Statements that Reference Collections
FOR Loops that Reference Collections and the Returning Into Clause
T riggers
Hiding PL/SQL Code with th e PL/SQL Wrapper
Compiling PL/SQL Procedures for Native Execution
Remote Dependencies
< /strong>
Timestamps
Disadvantages of the Timestamp Model
Signatures
When Does a Signature Change?
Modes
Default Parame ter Values
Examples of Changing Procedure Signatures
Controlling Remote Dependencies
Dependency Resolution
Suggestions for Managing Dependencies
Cursor Variables
< /strong>
Declaring and Opening Cursor Variables
Examples of Cursor Variables
Fetching Data
Implementing Variant Records
Handling PL/SQL Compile-Time Errors
< dd class="H1TOC">
Handling Run-Time PL/SQL Errors
Declaring Exceptions and Exception Handling Routines
Unhandled Exceptions
Handling Errors in Distrib uted Queries
Handling Errors in Remote Procedures
Debugging Stored Procedures
Calling Stored Procedures
A Procedure or Trigger Calling Another Procedure
Interactively Calling Procedures From Oracle Database Tools
Calling Procedures within 3GL Applications
Name Resolution When Callin g Procedures
Privileges Required to Execute a Procedure
Specifying Values for Procedure Arguments
Calling Remote Procedures
Remote Procedure Calls and Parameter Values
Referencing Remote Objects
Synonyms for Procedures and Packages
Callin g Stored Functions from SQL Expressions
Using PL/SQ L Functions
Syntax for SQL Calling a PL/SQL Function
Naming Conventions
Name Precedence
Example of Calling a PL/SQL Function from SQL
Arguments
Using Default Values
Privileges
Requirements for Calling PL/SQL Functions from SQL Expressions
Controlling Side Effects
Restrictions
Declaring a Function
Paral lel Query and Parallel DML
PRAGMA RESTRICT_REFERENCES - for Backward Compat ibility
Using the Keyword TRUST
< a href="adfns_pc.htm#1008295">Differences between Static and Dynamic SQL Statements.
Overloading Packaged PL/SQL Functions
Seriall y Reusable PL/SQL Packages
Package States
Why Serially Reusable Packages?
Syn tax of Serially Reusable Packages
Semantics of Serially Reusable Packages a>
Examples of Serially Reusable Packages
Example 1: How Package Variables Act Across Call Boundaries
Example 2: How Package Variables Act Across Call Boundaries
Example 3: Open Cursors in Serially Reusable Packages at Call Boundaries
Returning Large Amounts of Data from a Function
Coding Your Own Aggregate Functions
8 Calling External Procedures
Overview of Multi-Language Programs
What Is an External Procedure?
Overview of The Call Specification for External Procedures
Loading External Procedures
< dd class="H2TOC">
Loading Java Class Methods
Loading External C Procedures
Publishing Ext ernal Procedures
The AS LANGUAGE Clause for Java Cl ass Methods
The AS LANGUAGE Clause for External C Procedures
LIBRARY
NAME
LANGUAGE
CALLING STA NDARD
WITH CONTEXT
PARAMETERS
AGENT IN
Publishing Java Class Methods
Publishing External C Procedures
Locations of Call Specifications
Example: Locating a Call Specification in a PL/SQL Package Body
Example: Locating a Call Specification in an Object Type Specification
Example: Locating a Call Specification in an Object Type Body
Passing Parameters to External C Procedures with Call Specifications
Specifying Datatypes
External Datatype Mappings
BY VALUE/REFERENCE for IN and IN OUT Parameter Modes
The PARAMETERS Clause
Overriding Default Datatype Mapping
Specifying Properties
INDICATOR
LENGTH and MAXLEN
CHARSETID and CHARSETFORM
< a href="adfns_ex.htm#1007400">Repositioning Parameters
Using SELF
Passing Parameters by Reference
WITH CONTEXT
Inter-Language Parameter Mode Mappings
Executing External Procedures with the CALL Stateme nt
Preconditions for External Procedures
Privileges of External Procedures
Managing Permissions
Creating Synonyms for External P rocedures
CALL Statement Syntax
Calling Java Class Methods
How the Database Server Calls External C Procedures
Handling Errors and Exceptions in Multi-Language Programs
Generic Compile Time Call specification Errors
C Exception Handling
dd>
Using Service Procedures with External C Procedures
OCIExtProcAllocCallMemory
OCIExtProcRaiseExcp
OCIEx tProcRaiseExcpWithMsg
Doing Callba cks with External C Procedures
OCIExtProcGetEnv
Object Support for O CI Callbacks
Restrictions on Callbacks
Debugging External Procedures
Using Pa ckage DEBUG_EXTPROC
Demo Program
Guidelines for External C Procedures
Restrictions on External C Procedures
Part III The Active Database
9 Using Triggers
Designing Triggers
Creating Triggers
Types of Triggers
Overview of System Events
Getting the Attributes of System Events
Naming Triggers
When Is the Trigger Fired?
Do Import and SQL*Loader Fire Triggers?
How Column Lists Affect UPDATE Triggers
Controlling When a Trigger Is Fired (BEFORE and AFTER Op tions)
Ordering of Triggers
Modifying Complex Views (INSTEAD OF Triggers)
Vie ws that Require INSTEAD OF Triggers
INSTEAD OF Trigger Example
Object Views and INSTEAD OF Triggers
Triggers on Nested Table View Columns
Firing Triggers One or Many Times (FOR EACH ROW Option)
Firing Triggers Based on Conditions (W HEN Clause)
Coding the Trigger Body
Example: Mo nitoring Logons with a Trigger
Example: Calling a Java Procedure from a Tri gger
Accessing Column Values in Row Triggers
Example: Modifying LOB Columns with a Trigger< /a>
INSTEAD OF Triggers on Nested Table View Columns
Avoiding Name Conflicts with Triggers (REFERENCING Option)
Detecting the DML Operation That Fired a Trigger
Error Cond itions and Exceptions in the Trigger Body
Triggers and Handling R emote Exceptions
Restrictions on Creating Triggers
Who Is the Trigger User?
Privileges Neede d to Work with Triggers
Compiling Triggers a>
Dependencies for Triggers
Recompiling Triggers
Modifying Triggers
Debugging Triggers
< /dd>
Enabling and Disabling Triggers
Enabling Triggers
Disabling Triggers
Viewing Informat ion About Triggers
Examples of Trigger Applic ations
Auditing with Trigge rs: Example
Integrity Constraints and Triggers: Examples
Referential Integrity Using Triggers
Foreign Key Trigger for Child Table
UPDATE and DELETE REST RICT Trigger for Parent Table
UPDATE and DELETE SET NULL Triggers for Paren t Table: Example
DELETE Cascade Trigger for Parent Table: Example
UPDATE Cascade Trigger for Parent Table: Example
Trigger for Complex Check Constraints: Example
Complex Security Authorizations and Triggers: Example
Transparent Even t Logging and Triggers
Derived Column Values and Triggers: Example
Building Complex Updatable Views Using Triggers: Example
Tracking System Events Using Triggers
Fine-Grained Access Control Using Triggers: Example
CALL Syntax a>
Responding to System Even ts through Triggers
10 Working With System Events
Event Attribute Functions
List of Datab ase Events
System Events
Client Events
11 Using the Publish-Subscribe Model for Applications
Introduction to Publish-Subscribe
Publish-Subscribe Architecture
Publish-Subscribe Concepts
Examples of a Publish-Subscribe Mechanism
Part IV Developing Specialized Applications
12 Using Regular Expressions With Oracle Database
What are Regular Expressions?
Oracle Database Regular Expression Support
Oracle Database SQL Functions for Regular Expressions
dd>
Metacharacters Supported in Regular Expressions
Constructing Regular Expressions
Basic String Matching with Regular Expressions
Regular Expression Operations on Subexpressions
Regular Expression Operator and Metacharacter Usage
< font face="Arial, Helvetica, sans-serif">13 Developing Web Applications with PL/SQL
PL/SQL Web Applications
PL/SQL Gateway
C onfiguring mod_plsql
Uploading and Downloading Files With PL/SQL Gateway
Uploading Files to the Database
Downloading Files From the Database
C ustom Authentication With PL/SQL Gateway
PL/ SQL Web Toolkit
Generating HTML Output from P L/SQL
Passing Parameters to a PL/SQL Web Appl ication
Passing List and Dropdown List Parameters f rom an HTML Form
Passing Radio Button and Checkbox Parameters from an HTML Form
Passing Entry Field Parameters from an HTML Form
Passing Hidden Parameters from an HTML Form
Uploading a File from an HTML Form
Submitting a Completed HTML Form a>
Handling Missing Input from an HTML Form
Maintaining State Information Between Web Pages
Performing Network Operations within PL/SQL Stored Procedures
Sending E-Mail from PL/SQL
Getting a Host Name or Address from PL/SQL
Working with TCP/IP Connections from PL/SQ L
Retrieving the Contents of an HTTP URL from PL/SQL
Working with Tables, Image Maps, Cookies, and CGI Variables from PL/SQL
Embedding PL/SQL Code in Web Pages (PL/SQL Server Pages)
Choosing a Software Configuration
Choosing Between PSP and the PL/SQL Web Toolkit
How PSP Relates to Other Scripting Solutions
Wri ting the Code and Content for the PL/SQL Server Page
The For mat of the PSP File
Syntax of PL/SQL Server Page Elements
Page Directive
Procedure Directive
Parameter Directive
Include Directive
Declaration Block
< dd class="H3TOC">
Code Block (Scriptlet)
Expr ession Block
Loading the PL/SQL Server Page into the Database as a Stored Procedure
Running a PL/SQL Server Page Through a URL
Sample PSP URLs
Examples of PL/SQL Server Pages
Sample Table
< /dd>
Dumping the Sample Table
Printing the Sample Table using a Loop
Allowing a User Selection
Sample HTML Form to Call a PL/SQL Server Page
Debugging PL/SQL Server Page Problems
Putt ing an Application using PL/SQL Server Pages into Production
Enabling PL/SQL Web Applications for XML
14 Porting Non-Oracle Applications to Oracle Database 10
g
Performing Natural Joins and Inner Jo ins
Migrating a Schema and Data from Another Database System
Performing Several Comparison s within a Query
15 Using Flashback Features
Overview of Flashback Features
Application Develop ment Features
Database Administration Features
Database Administration Tasks Before Using Flashback Features
Using Flashback Query (SELECT ... AS OF)
Examining Past Data: Example
Tips for Using Flashback Query
Using the DBMS_FLASHBACK Package
Usi ng ORA_ROWSCN
Using Flashback Version Query a>
Using Flashback Transaction Query
Flashback Transaction Query and Flashback Version Query: Exampl e
Flashback Tips
Flashback Tips - Performance
Flashback Tips - General
16 Using Oracle XA with Transaction Monitors
X/Open Distributed Transaction Processing (DTP)
Required Public Information
XA and the Two-Phase Commit Protocol
Transaction Processing Monitors (TPMs)
Support for Dynamic and Static Registration
Oracle XA Library Interface Subroutines
XA Librar y Subroutines
Extensions to the XA Interface
Developing and Installing Applications That Use the XA Libraries
Responsibilities of the DBA or System Administrator
Responsibilities of the Application Developer
Defining the xa_open String
Syntax of t he xa_open String
Required Fields
Optional Fields
Interfacing XA with Precompilers and OCIs
Using Precompilers with the Oracle XA Library
< /dd>
Using Precompilers with the Default Database
Using Precompilers with a Named Database
Using OCI with the Oracle XA Library
Transaction Control using XA
Examples of Precompiler Applications
Migrating Precompiler or OCI Applications to TPM Applications
XA Library Thread Safety
Specifying T hreading in the Open String
Restrictions on Threading in XA
dd>
Troubleshooting XA Applications
XA Trace Files
The xa_open string DbgFl
Trace File Locations
< /dl>
Trace File Examples
In-Doubt or Pending Transactions
Oracle Database SYS Account Tables
XA Issues and Restrictions
Changes to Oracle XA Support
XA Changes from Release 8.0 to Release 8.1
XA Changes from Release 7.3 to Release 8.0
Ses sion Caching Is No Longer Needed
Dynamic Registration Is Supported
Loosely Coupled Transaction Branches Are Supported
SQLLIB Is Not Needed for OCI Applications
No Inst allation Script Is Needed to Run XA
XA Library Use with Oracle Real Applica tion Clusters Option on All Platforms
Transaction Recovery for Oracle Real Application Clusters Has Been Improved
Both Global and Local Transactions A re Possible
The xa_open String Has Been Modified
Index
Next
td>
Copyright © 1996, 2003 Oracle Corporation
All Rights Reserved.
Home
Book List
Index
Master Index
Feedback