Table of Contents
- List of Examples
- List of Figures
- List of Tables
- Title and Copyright Information
- Preface
- Changes in This Release for Oracle Call Interface Programmer's Guide
- 1
OCI: Introduction and Upgrading
- 1.1
Overview of OCI
- 1.1.1 Building an OCI Application
- 1.1.2 Alternatives to OCI
- 1.1.3 Procedural and Nonprocedural Elements
- 1.1.4 Object Support
- 1.1.5 SQL Statements
- 1.1.6 Encapsulated Interfaces
- 1.1.7 Simplified User Authentication and Password Management
- 1.1.8 Features to Improve Application Performance and Scalability
- 1.1.9 OCI Object Support
- 1.1.10 OCI Support for Oracle Streams Advanced Queuing
- 1.1.11 XA Library Support
- 1.2 About Compatibility and Upgrading
- 1.1
Overview of OCI
- 2
OCI Instant Client and Instant Client Light
- 2.1
About OCI Instant Client
- 2.1.1 Installing the OCI Instant Client or Installing the Linux RPM Packages
- 2.1.2 When to Use Instant Client
- 2.1.3 About Patching Instant Client Shared Libraries on Linux or UNIX
- 2.1.4
Regeneration of Data Shared Library and Zip and RPM Files
- 2.1.4.1 Regenerating Data Shared Library libociei.so
- 2.1.4.2 Regenerating Data Shared Library libociicus.so
- 2.1.4.3 Regenerating Data Shared Libraries libociei.so and libociicus.so in One Step
- 2.1.4.4 Regenerating Zip and RPM Files for the Basic Package
- 2.1.4.5 Regenerating Zip and RPM Files for the Basic Light Package
- 2.1.4.6 Regenerating Zip and RPM Files for the JDBC Package
- 2.1.4.7 Regenerating Zip and RPM Files for the ODBC Package
- 2.1.4.8 Regenerating Zip and RPM Files for the SQL*Plus Package
- 2.1.4.9 Regenerating Zip and RPM Files for the Tools Package
- 2.1.4.10 Regenerating Zip and RPM Files for All Packages
- 2.1.5 Database Connection Strings for OCI Instant Client
- 2.1.6 Environment Variables for OCI Instant Client
- 2.1.7 SDK for Instant Client
- 2.2 About Instant Client Light (English)
- 2.1
About OCI Instant Client
- 3
OCI Programming Basics
- 3.1 Header File and Makefile Locations
- 3.2 Overview of OCI Program Programming
- 3.3
OCI Data Structures
- 3.3.1
Handles
- 3.3.1.1 About Allocating and Freeing Handles
- 3.3.1.2 Environment Handle
- 3.3.1.3 Error Handle
- 3.3.1.4 Service Context Handle and Associated Handles
- 3.3.1.5 Statement, Bind, and Define Handles
- 3.3.1.6 Describe Handle
- 3.3.1.7 Complex Object Retrieval Handle
- 3.3.1.8 Thread Handle
- 3.3.1.9 Subscription Handle
- 3.3.1.10 Direct Path Handles
- 3.3.1.11 Connection Pool Handle
- 3.3.1.12 Handle Attributes
- 3.3.1.13 OCI Descriptors
- 3.3.1
Handles
- 3.4 OCI Programming Steps
- 3.5
Additional Coding Guidelines
- 3.5.1 Operating System Considerations
- 3.5.2 Parameter Types
- 3.5.3 Inserting Nulls into a Column
- 3.5.4 Indicator Variables
- 3.5.5 About Canceling Calls
- 3.5.6 Positioned Updates and Deletes
- 3.5.7 Reserved Words
- 3.5.8 Polling Mode Operations in OCI
- 3.5.9 Nonblocking Mode in OCI
- 3.5.10 Setting Blocking Modes
- 3.5.11 Canceling a Nonblocking Call
- 3.6 About Using PL/SQL in an OCI Program
- 3.7
OCI Globalization Support
- 3.7.1 Client Character Set Control from OCI
- 3.7.2 Character Control and OCI Interfaces
- 3.7.3 Character-Length Semantics in OCI
- 3.7.4 Character Set Support in OCI
- 3.7.5 Controlling Language and Territory in OCI
- 3.7.6 Other OCI Globalization Support Functions
- 3.7.7 About Getting Locale Information in OCI
- 3.7.8 About OCI and the BOM (Byte Order Mark)
- 3.7.9 About Manipulating Strings in OCI
- 3.7.10 About Converting Character Sets in OCI
- 3.7.11 OCI Messaging Functions
- 3.7.12 lmsgen Utility
- 4
Data Types
- 4.1 Oracle Data Types
- 4.2 Internal Data Types
- 4.3
External Data Types
- 4.3.1 VARCHAR2
- 4.3.2 NUMBER
- 4.3.3 64-Bit Integer Host Data Type
- 4.3.4 INTEGER
- 4.3.5 FLOAT
- 4.3.6 STRING
- 4.3.7 VARNUM
- 4.3.8 LONG
- 4.3.9 VARCHAR
- 4.3.10 DATE
- 4.3.11 RAW
- 4.3.12 VARRAW
- 4.3.13 LONG RAW
- 4.3.14 UNSIGNED
- 4.3.15 LONG VARCHAR
- 4.3.16 LONG VARRAW
- 4.3.17 CHAR
- 4.3.18 CHARZ
- 4.3.19 Named Data Types: Object, VARRAY, Nested Table
- 4.3.20 REF
- 4.3.21 ROWID Descriptor
- 4.3.22 LOB Descriptor
- 4.3.23 Datetime and Interval Data Type Descriptors
- 4.3.24 Native Float and Native Double
- 4.3.25 C Object-Relational Data Type Mappings
- 4.4 Data Conversions
- 4.5 Typecodes
- 4.6 Definitions in oratypes.h
- 5 Using SQL Statements in OCI
- 6
Binding and Defining in OCI
- 6.1 Overview of Binding in OCI
- 6.2 Advanced Bind Operations in OCI
- 6.3 Overview of Defining in OCI
- 6.4 Advanced Define Operations in OCI
- 6.5 About Binding and Defining Arrays of Structures in OCI
- 6.6 About Binding and Defining Multiple Buffers
- 6.7 DML with a RETURNING Clause in OCI
- 6.8
Character Conversion in OCI Binding and Defining
- 6.8.1 About Choosing a Character Set
- 6.8.2 About Setting Client Character Sets in OCI
- 6.8.3 About Binding Variables in OCI
- 6.9 PL/SQL REF CURSORs and Nested Tables in OCI
- 6.10 Natively Describe and Bind All PL/SQL Types Including Package Types
- 6.11
Runtime Data Allocation and Piecewise Operations in OCI
- 6.11.1 Valid Data Types for Piecewise Operations
- 6.11.2 Types of Piecewise Operations
- 6.11.3 About Providing INSERT or UPDATE Data at Runtime
- 6.11.4 Piecewise Operations with PL/SQL
- 6.11.5 PL/SQL Indexed Table Binding Support
- 6.11.6 About Providing FETCH Information at Run Time
- 6.11.7 Piecewise Binds and Defines for LOBs
- 7
Describing Schema Metadata
- 7.1 About Using OCIDescribeAny()
- 7.2
Parameter Attributes
- 7.2.1 Table or View Parameters
- 7.2.2 Procedure, Function, and Subprogram Attributes
- 7.2.3 Package Attributes
- 7.2.4 Type Attributes
- 7.2.5 Type Attribute Attributes
- 7.2.6 Type Method Attributes
- 7.2.7 Collection Attributes
- 7.2.8 Synonym Attributes
- 7.2.9 Sequence Attributes
- 7.2.10 Column Attributes
- 7.2.11 Argument and Result Attributes
- 7.2.12 List Attributes
- 7.2.13 Schema Attributes
- 7.2.14 Database Attributes
- 7.2.15 Rule Attributes
- 7.2.16 Rule Set Attributes
- 7.2.17 Evaluation Context Attributes
- 7.2.18 Table Alias Attributes
- 7.2.19 Variable Type Attributes
- 7.2.20 Name Value Attributes
- 7.3 Character-Length Semantics Support in Describe Operations
- 7.4
Examples Using OCIDescribeAny()
- 7.4.1 Retrieving Column Data Types for a Table
- 7.4.2 Describing the Stored Procedure
- 7.4.3 Retrieving Attributes of an Object Type
- 7.4.4 Retrieving the Collection Element's Data Type of a Named Collection Type
- 7.4.5 Describing with Character-Length Semantics
- 7.4.6 Describing Each Column to Know Whether It Is an Invisible Column
- 8
LOB and BFILE Operations
- 8.1 About Using OCI Functions for LOBs
- 8.2 About Creating and Modifying Persistent LOBs
- 8.3 About Associating a BFILE in a Table with an Operating System File
- 8.4 LOB Attributes of an Object
- 8.5 Array Interface for LOBs
- 8.6 About Using LOBs of Size Greater than 4 GB
- 8.7 LOB and BFILE Functions in OCI
- 8.8 Temporary LOB Support
- 8.9 Prefetching of LOB Data, Length, and Chunk Size
- 8.10 Options of SecureFiles LOBs
- 9
Managing Scalable Platforms
- 9.1 OCI Support for Transactions
- 9.2
Levels of Transactional Complexity
- 9.2.1 Simple Local Transactions
- 9.2.2 Serializable or Read-Only Local Transactions
- 9.2.3
Global Transactions
- 9.2.3.1 Transaction Identifiers
- 9.2.3.2 Attribute OCI_ATTR_TRANS_NAME
- 9.2.3.3 Transaction Branches
- 9.2.3.4 Branch States
- 9.2.3.5 Detaching and Resuming Branches
- 9.2.3.6 About Setting the Client Database Name
- 9.2.3.7 One-Phase Commit Versus Two-Phase Commit
- 9.2.3.8 Preparing Multiple Branches in a Single Message
- 9.2.4 Transaction Examples
- 9.2.5 Initialization Parameters
- 9.3 Password and Session Management
- 9.4 Middle-Tier Applications in OCI
- 9.5 Externally Initialized Context in OCI
- 9.6 Client Application Context
- 9.7 Using Edition-Based Redefinition
- 9.8 OCI Security Enhancements
- 9.9 Overview of OCI Multithreaded Development
- 9.10 OCIThread Package
- 10
OCI Programming Advanced Topics
- 10.1 Session Pooling in OCI
- 10.2 Runtime Connection Load Balancing
- 10.3 Database Resident Connection Pooling
- 10.4 Connection Pooling in OCI
- 10.5 When to Use Connection Pooling, Session Pooling, or Neither
- 10.6 Statement Caching in OCI
- 10.7
User-Defined Callback Functions in OCI
- 10.7.1
About Registering User Callbacks in OCI
- 10.7.1.1 OCIUserCallbackRegister
- 10.7.1.2 User Callback Function
- 10.7.1.3 User Callback Control Flow
- 10.7.1.4 User Callback for OCIErrorGet()
- 10.7.1.5 Errors from Entry Callbacks
- 10.7.1.6 Dynamic Callback Registrations
- 10.7.1.7 About Loading Multiple Packages
- 10.7.1.8 Package Format
- 10.7.1.9 User Callback Chaining
- 10.7.1.10 About Accessing Other Data Sources Through OCI
- 10.7.1.11 Restrictions on Callback Functions
- 10.7.1.12 Example of OCI Callbacks
- 10.7.2 OCI Callbacks from External Procedures
- 10.7.1
About Registering User Callbacks in OCI
- 10.8
Transparent Application Failover in OCI
- 10.8.1 About Configuring Transparent Application Failover
- 10.8.2 Transparent Application Failover Callbacks in OCI
- 10.8.3 Transparent Application Failover Callback Structure and Parameters
- 10.8.4 Failover Callback Structure and Parameters
- 10.8.5 Failover Callback Registration
- 10.8.6 Failover Callback Example
- 10.8.7 Handling OCI_FO_ERROR
- 10.9 HA Event Notification
- 10.10 OCI and Transaction Guard
- 10.11 OCI and Application Continuity
- 10.12 OCI and Streams Advanced Queuing
- 10.13
Publish-Subscribe Notification in OCI
- 10.13.1
Publish-Subscribe Registration Functions in OCI
- 10.13.1.1 Publish-Subscribe Register Directly to the Database
- 10.13.1.2 Open Registration for Publish-Subscribe
- 10.13.1.3 Using OCI to Open Register with LDAP
- 10.13.1.4 Setting QOS, Timeout Interval, Namespace, Client Address, and Port Number
- 10.13.1.5 OCI Functions Used to Manage Publish-Subscribe Notification
- 10.13.2 Notification Callback in OCI
- 10.13.3 Notification Procedure
- 10.13.4 Publish-Subscribe Direct Registration Example
- 10.13.5 Publish-Subscribe LDAP Registration Example
- 10.13.1
Publish-Subscribe Registration Functions in OCI
- 11
More OCI Advanced Topics
- 11.1 About Continuous Query Notification
- 11.2 Database Startup and Shutdown
- 11.3 Implicit Fetching of ROWIDs
- 11.4 OCI Support for Implicit Results
- 11.5 Client Result Cache
- 11.6
Client Statement Cache Auto-Tuning
- 11.6.1 About Auto-Tuning Client Statement Cache
- 11.6.2 Benefit of Auto-Tuning Client Statement Cache
- 11.6.3 Client Statement Cache Auto-Tuning Parameters
- 11.6.4 Usage Examples of Client Statement Cache Auto Tuning
- 11.6.5 Enabling and Disabling OCI Client Auto-Tuning
- 11.6.6 Usage Guidelines for Auto-Tuning Client Statement Cache
- 11.7
OCI Client-Side Deployment Parameters Using oraaccess.xml
- 11.7.1 About oraaccess.xml
- 11.7.2 About Client-Side Deployment Parameters Specified in oraaccess.xml
- 11.7.3 High Level Structure of oraaccess.xml
- 11.7.4 About Specifying Global Parameters in oraaccess.xml
- 11.7.5 About Specifying Defaults for Connection Parameters
- 11.7.6 Overriding Connection Parameters at the Connection-String Level
- 11.7.7 File (oraaccess.xml) Properties
- 11.8 Fault Diagnosability in OCI
- 11.9 Client and Server Operating with Different Versions of Time Zone Files
- 11.10
Support for Pluggable Databases
- 11.10.1 Enhancements on OCI API Calls with Multitenant Container Databases (CDB) in General
- 11.10.2 OCI Enhancements for ALTER SESSION SET CONTAINER
- 11.10.3 Restrictions on OCI API Calls with Multitenant Container Databases (CDB) in General
- 11.10.4 Restrictions on OCI Calls with ALTER SESSION SET CONTAINER
- 11.10.5 Restrictions on OCI Calls with ALTER SESSION SWITCH CONTAINER SWITCH SERVICE
- 11.11 About the OCI Interface for Using Shards
- 11.12 About Using the XStream Interface
- 12
OCI Object-Relational Programming
- 12.1 OCI Object Overview
- 12.2 About Working with Objects in OCI
- 12.3
About Developing an OCI Object Application
- 12.3.1 About Representing Objects in C Applications
- 12.3.2 About Initializing the Environment and the Object Cache
- 12.3.3 About Making Database Connections
- 12.3.4 Retrieving an Object Reference from the Server
- 12.3.5 Pinning an Object
- 12.3.6 Manipulating Object Attributes
- 12.3.7 About Marking Objects and Flushing Changes
- 12.3.8 Fetching Embedded Objects
- 12.3.9 Object Meta-Attributes
- 12.3.10 Complex Object Retrieval
- 12.3.11 COR Prefetching
- 12.3.12 OCI Versus SQL Access to Objects
- 12.3.13 Pin Count and Unpinning
- 12.3.14 NULL Indicator Structure
- 12.3.15 About Creating Objects
- 12.3.16 About Freeing and Copying Objects
- 12.3.17 Object Reference and Type Reference
- 12.3.18 Create Objects Based on Object Views and Object Tables with Primary-Key-Based OIDs
- 12.3.19 Error Handling in Object Applications
- 12.4 About Type Inheritance
- 12.5 About Type Evolution
- 13
Object-Relational Data Types in OCI
- 13.1 Overview of OCI Functions for Objects
- 13.2 About Mapping Oracle Data Types to C
- 13.3 About Manipulating C Data Types with OCI
- 13.4 Date (OCIDate)
- 13.5 Datetime and Interval (OCIDateTime, OCIInterval)
- 13.6 Number (OCINumber)
- 13.7 Fixed or Variable-Length String (OCIString)
- 13.8 Raw (OCIRaw)
- 13.9 Collections (OCITable, OCIArray, OCIColl, OCIIter)
- 13.10 About Multilevel Collection Types
- 13.11 REF (OCIRef)
- 13.12 Object Type Information Storage and Access
- 13.13 AnyType, AnyData, and AnyDataSet Interfaces
- 13.14 About Binding Named Data Types
- 13.15 About Defining Named Data Types
- 13.16 About Binding and Defining Oracle C Data Types
- 13.17 SQLT_NTY Bind and Define Examples
- 14
Direct Path Load Interface
- 14.1
Direct Path Loading Overview
- 14.1.1 Data Types Supported for Direct Path Loading
- 14.1.2 Direct Path Handles
- 14.1.3 About Direct Path Interface Functions
- 14.1.4 Limitations and Restrictions of the Direct Path Load Interface
- 14.1.5 Direct Path Load Examples for Scalar Columns
- 14.1.6 About Using a Date Cache in Direct Path Loading of Dates in OCI
- 14.1.7 About Validating Format for Oracle NUMBER and DATE Data
- 14.2
Direct Path Loading of Object Types
- 14.2.1 Direct Path Loading of Nested Tables
- 14.2.2 Direct Path Loading of Column Objects
- 14.2.3 Direct Path Loading of SQL String Columns
- 14.2.4 Direct Path Loading of REF Columns
- 14.2.5 Direct Path Loading of NOT FINAL Object and REF Columns
- 14.2.6 Direct Path Loading of Object Tables
- 14.2.7 Direct Path Loading a NOT FINAL Object Table
- 14.3 Direct Path Loading in Pieces
- 14.4 Direct Path Context Handles and Attributes for Object Types
- 14.1
Direct Path Loading Overview
- 15
Object Advanced Topics in OCI
- 15.1
Object Cache and Memory Management
- 15.1.1 Cache Consistency and Coherency
- 15.1.2 Object Cache Parameters
- 15.1.3 Object Cache Operations
- 15.1.4 About Loading and Removing Object Copies
- 15.1.5 About Making Changes to Object Copies
- 15.1.6 About Synchronizing Object Copies with the Server
- 15.1.7 Object Locking
- 15.1.8 Commit and Rollback in Object Applications
- 15.1.9 Object Duration
- 15.1.10 Memory Layout of an Instance
- 15.2 Object Navigation
- 15.3 OCI Navigational Functions
- 15.4 Type Evolution and the Object Cache
- 15.5
OCI Support for XML
- 15.5.1 XML Context
- 15.5.2 XML Data on the Server
- 15.5.3 Using OCI XML DB Functions
- 15.5.4
OCI Client Access to Binary XML
- 15.5.4.1 Accessing XML Data from an OCI Application
- 15.5.4.2 Repository Context
- 15.5.4.3 Create Repository Context from a Dedicated OCI Connection
- 15.5.4.4 Create Repository Context from a Connection Pool
- 15.5.4.5 About Associating Repository Context with a Data Connection
- 15.5.4.6 About Setting XMLType Encoding Format Preference
- 15.5.4.7 Example of Using a Connection Pool
- 15.1
Object Cache and Memory Management
- 16
Using the Object Type Translator with OCI
- 16.1 What Is the Object Type Translator?
- 16.2 OTT Command Line
- 16.3 Intype File
- 16.4 OTT Data Type Mappings
- 16.5 Outtype File
- 16.6 About Using OTT with OCI Applications
- 16.7
OTT Reference
- 16.7.1 OTT Command-Line Syntax
- 16.7.2 OTT Parameters
- 16.7.3 Where OTT Parameters Can Appear
- 16.7.4 Structure of the Intype File
- 16.7.5 Nested Included File Generation
- 16.7.6 SCHEMA_NAMES Usage
- 16.7.7 Default Name Mapping
- 16.7.8 OTT Restriction on File Name Comparison
- 16.7.9 OTT Command on Microsoft Windows
- 17
Oracle Database Access C API
- 17.1 Introduction to the Relational Functions
- 17.2
Connect, Authorize, and Initialize Functions
- 17.2.1 OCIAppCtxClearAll()
- 17.2.2 OCIAppCtxSet()
- 17.2.3 OCIConnectionPoolCreate()
- 17.2.4 OCIConnectionPoolDestroy()
- 17.2.5 OCIDBShutdown()
- 17.2.6 OCIDBStartup()
- 17.2.7 OCIEnvCreate()
- 17.2.8 OCIEnvNlsCreate()
- 17.2.9 OCILogoff()
- 17.2.10 OCILogon()
- 17.2.11 OCILogon2()
- 17.2.12 OCIRequestDisableReplay()
- 17.2.13 OCIServerAttach()
- 17.2.14 OCIServerDetach()
- 17.2.15 OCISessionBegin()
- 17.2.16 OCISessionEnd()
- 17.2.17 OCISessionGet()
- 17.2.18 OCISessionPoolCreate()
- 17.2.19 OCISessionPoolDestroy()
- 17.2.20 OCISessionRelease()
- 17.2.21 OCITerminate()
- 17.3 Handle and Descriptor Functions
- 17.4
Bind, Define, and Describe Functions
- 17.4.1 OCIBindArrayOfStruct()
- 17.4.2 OCIBindByName()
- 17.4.3 OCIBindByName2()
- 17.4.4 OCIBindByPos()
- 17.4.5 OCIBindByPos2()
- 17.4.6 OCIBindDynamic()
- 17.4.7 OCIBindObject()
- 17.4.8 OCIDefineArrayOfStruct()
- 17.4.9 OCIDefineByPos()
- 17.4.10 OCIDefineByPos2()
- 17.4.11 OCIDefineDynamic()
- 17.4.12 OCIDefineObject()
- 17.4.13 OCIDescribeAny()
- 17.4.14 OCIStmtGetBindInfo()
- 18
More Oracle Database Access C API
- 18.1 Introduction to the Relational Functions
- 18.2 Statement Functions
- 18.3
LOB Functions
- 18.3.1 OCIDurationBegin()
- 18.3.2 OCIDurationEnd()
- 18.3.3 OCILobAppend()
- 18.3.4 OCILobArrayRead()
- 18.3.5 OCILobArrayWrite()
- 18.3.6 OCILobAssign()
- 18.3.7 OCILobCharSetForm()
- 18.3.8 OCILobCharSetId()
- 18.3.9 OCILobClose()
- 18.3.10 OCILobCopy2()
- 18.3.11 OCILobCreateTemporary()
- 18.3.12 OCILobErase2()
- 18.3.13 OCILobFileClose()
- 18.3.14 OCILobFileCloseAll()
- 18.3.15 OCILobFileExists()
- 18.3.16 OCILobFileGetName()
- 18.3.17 OCILobFileIsOpen()
- 18.3.18 OCILobFileOpen()
- 18.3.19 OCILobFileSetName()
- 18.3.20 OCILobFreeTemporary()
- 18.3.21 OCILobGetChunkSize()
- 18.3.22 OCILobGetContentType()
- 18.3.23 OCILobGetLength2()
- 18.3.24 OCILobGetOptions()
- 18.3.25 OCILobGetStorageLimit()
- 18.3.26 OCILobIsEqual()
- 18.3.27 OCILobIsOpen()
- 18.3.28 OCILobIsTemporary()
- 18.3.29 OCILobLoadFromFile2()
- 18.3.30 OCILobLocatorAssign()
- 18.3.31 OCILobLocatorIsInit()
- 18.3.32 OCILobOpen()
- 18.3.33 OCILobRead2()
- 18.3.34 OCILobSetContentType()
- 18.3.35 OCILobSetOptions()
- 18.3.36 OCILobTrim2()
- 18.3.37 OCILobWrite2()
- 18.3.38 OCILobWriteAppend2()
- 18.4 Streams Advanced Queuing and Publish-Subscribe Functions
- 18.5
Direct Path Loading Functions
- 18.5.1 OCIDirPathAbort()
- 18.5.2 OCIDirPathColArrayEntryGet()
- 18.5.3 OCIDirPathColArrayEntrySet()
- 18.5.4 OCIDirPathColArrayReset()
- 18.5.5 OCIDirPathColArrayRowGet()
- 18.5.6 OCIDirPathColArrayToStream()
- 18.5.7 OCIDirPathDataSave()
- 18.5.8 OCIDirPathFinish()
- 18.5.9 OCIDirPathFlushRow()
- 18.5.10 OCIDirPathLoadStream()
- 18.5.11 OCIDirPathPrepare()
- 18.5.12 OCIDirPathStreamReset()
- 18.6
Thread Management Functions
- 18.6.1 OCIThreadClose()
- 18.6.2 OCIThreadCreate()
- 18.6.3 OCIThreadHandleGet()
- 18.6.4 OCIThreadHndDestroy()
- 18.6.5 OCIThreadHndInit()
- 18.6.6 OCIThreadIdDestroy()
- 18.6.7 OCIThreadIdGet()
- 18.6.8 OCIThreadIdInit()
- 18.6.9 OCIThreadIdNull()
- 18.6.10 OCIThreadIdSame()
- 18.6.11 OCIThreadIdSet()
- 18.6.12 OCIThreadIdSetNull()
- 18.6.13 OCIThreadInit()
- 18.6.14 OCIThreadIsMulti()
- 18.6.15 OCIThreadJoin()
- 18.6.16 OCIThreadKeyDestroy()
- 18.6.17 OCIThreadKeyGet()
- 18.6.18 OCIThreadKeyInit()
- 18.6.19 OCIThreadKeySet()
- 18.6.20 OCIThreadMutexAcquire()
- 18.6.21 OCIThreadMutexDestroy()
- 18.6.22 OCIThreadMutexInit()
- 18.6.23 OCIThreadMutexRelease()
- 18.6.24 OCIThreadProcessInit()
- 18.6.25 OCIThreadTerm()
- 18.7 Transaction Functions
- 18.8 Sharding Functions
- 18.9
Miscellaneous Functions
- 18.9.1 OCIBreak()
- 18.9.2 OCIClientVersion()
- 18.9.3 OCIErrorGet()
- 18.9.4 OCILdaToSvcCtx()
- 18.9.5 OCIPasswordChange()
- 18.9.6 OCIPing()
- 18.9.7 OCIReset()
- 18.9.8 OCIRowidToChar()
- 18.9.9 OCIServerRelease()
- 18.9.10 OCIServerVersion()
- 18.9.11 OCISvcCtxToLda()
- 18.9.12 OCIUserCallbackGet()
- 18.9.13 OCIUserCallbackRegister()
- 19
OCI Navigational and Type Functions
- 19.1 Introduction to the Navigational and Type Functions
- 19.2 OCI Flush or Refresh Functions
- 19.3 OCI Mark or Unmark Object and Cache Functions
- 19.4 OCI Get Object Status Functions
- 19.5 OCI Miscellaneous Object Functions
- 19.6 OCI Pin, Unpin, and Free Functions
- 19.7 OCI Type Information Accessor Functions
- 20
OCI Data Type Mapping and Manipulation Functions
- 20.1 Introduction to Data Type Mapping and Manipulation Functions
- 20.2
OCI Collection and Iterator Functions
- 20.2.1 OCICollAppend()
- 20.2.2 OCICollAssign()
- 20.2.3 OCICollAssignElem()
- 20.2.4 OCICollGetElem()
- 20.2.5 OCICollGetElemArray()
- 20.2.6 OCICollIsLocator()
- 20.2.7 OCICollMax()
- 20.2.8 OCICollSize()
- 20.2.9 OCICollTrim()
- 20.2.10 OCIIterCreate()
- 20.2.11 OCIIterDelete()
- 20.2.12 OCIIterGetCurrent()
- 20.2.13 OCIIterInit()
- 20.2.14 OCIIterNext()
- 20.2.15 OCIIterPrev()
- 20.3
OCI Date, Datetime, and Interval Functions
- 20.3.1 OCIDateAddDays()
- 20.3.2 OCIDateAddMonths()
- 20.3.3 OCIDateAssign()
- 20.3.4 OCIDateCheck()
- 20.3.5 OCIDateCompare()
- 20.3.6 OCIDateDaysBetween()
- 20.3.7 OCIDateFromText()
- 20.3.8 OCIDateGetDate()
- 20.3.9 OCIDateGetTime()
- 20.3.10 OCIDateLastDay()
- 20.3.11 OCIDateNextDay()
- 20.3.12 OCIDateSetDate()
- 20.3.13 OCIDateSetTime()
- 20.3.14 OCIDateSysDate()
- 20.3.15 OCIDateTimeAssign()
- 20.3.16 OCIDateTimeCheck()
- 20.3.17 OCIDateTimeCompare()
- 20.3.18 OCIDateTimeConstruct()
- 20.3.19 OCIDateTimeConvert()
- 20.3.20 OCIDateTimeFromArray()
- 20.3.21 OCIDateTimeFromText()
- 20.3.22 OCIDateTimeGetDate()
- 20.3.23 OCIDateTimeGetTime()
- 20.3.24 OCIDateTimeGetTimeZoneName()
- 20.3.25 OCIDateTimeGetTimeZoneOffset()
- 20.3.26 OCIDateTimeIntervalAdd()
- 20.3.27 OCIDateTimeIntervalSub()
- 20.3.28 OCIDateTimeSubtract()
- 20.3.29 OCIDateTimeSysTimeStamp()
- 20.3.30 OCIDateTimeToArray()
- 20.3.31 OCIDateTimeToText()
- 20.3.32 OCIDateToText()
- 20.3.33 OCIDateZoneToZone()
- 20.3.34 OCIIntervalAdd()
- 20.3.35 OCIIntervalAssign()
- 20.3.36 OCIIntervalCheck()
- 20.3.37 OCIIntervalCompare()
- 20.3.38 OCIIntervalDivide()
- 20.3.39 OCIIntervalFromNumber()
- 20.3.40 OCIIntervalFromText()
- 20.3.41 OCIIntervalFromTZ()
- 20.3.42 OCIIntervalGetDaySecond()
- 20.3.43 OCIIntervalGetYearMonth()
- 20.3.44 OCIIntervalMultiply()
- 20.3.45 OCIIntervalSetDaySecond()
- 20.3.46 OCIIntervalSetYearMonth()
- 20.3.47 OCIIntervalSubtract()
- 20.3.48 OCIIntervalToNumber()
- 20.3.49 OCIIntervalToText()
- 20.4
OCI NUMBER Functions
- 20.4.1 OCINumberAbs()
- 20.4.2 OCINumberAdd()
- 20.4.3 OCINumberArcCos()
- 20.4.4 OCINumberArcSin()
- 20.4.5 OCINumberArcTan()
- 20.4.6 OCINumberArcTan2()
- 20.4.7 OCINumberAssign()
- 20.4.8 OCINumberCeil()
- 20.4.9 OCINumberCmp()
- 20.4.10 OCINumberCos()
- 20.4.11 OCINumberDec()
- 20.4.12 OCINumberDiv()
- 20.4.13 OCINumberExp()
- 20.4.14 OCINumberFloor()
- 20.4.15 OCINumberFromInt()
- 20.4.16 OCINumberFromReal()
- 20.4.17 OCINumberFromText()
- 20.4.18 OCINumberHypCos()
- 20.4.19 OCINumberHypSin()
- 20.4.20 OCINumberHypTan()
- 20.4.21 OCINumberInc()
- 20.4.22 OCINumberIntPower()
- 20.4.23 OCINumberIsInt()
- 20.4.24 OCINumberIsZero()
- 20.4.25 OCINumberLn()
- 20.4.26 OCINumberLog()
- 20.4.27 OCINumberMod()
- 20.4.28 OCINumberMul()
- 20.4.29 OCINumberNeg()
- 20.4.30 OCINumberPower()
- 20.4.31 OCINumberPrec()
- 20.4.32 OCINumberRound()
- 20.4.33 OCINumberSetPi()
- 20.4.34 OCINumberSetZero()
- 20.4.35 OCINumberShift()
- 20.4.36 OCINumberSign()
- 20.4.37 OCINumberSin()
- 20.4.38 OCINumberSqrt()
- 20.4.39 OCINumberSub()
- 20.4.40 OCINumberTan()
- 20.4.41 OCINumberToInt()
- 20.4.42 OCINumberToReal()
- 20.4.43 OCINumberToRealArray()
- 20.4.44 OCINumberToText()
- 20.4.45 OCINumberTrunc()
- 20.5 OCI Raw Functions
- 20.6 OCI REF Functions
- 20.7 OCI String Functions
- 20.8 OCI Table Functions
- 21
OCI Cartridge Functions
- 21.1 Introduction to External Procedure and Cartridge Services Functions
- 21.2 Cartridge Services — OCI External Procedures
- 21.3 Cartridge Services — Memory Services
- 21.4 Cartridge Services — Maintaining Context
- 21.5
Cartridge Services — Parameter Manager Interface
- 21.5.1 OCIExtractFromFile()
- 21.5.2 OCIExtractFromList()
- 21.5.3 OCIExtractFromStr()
- 21.5.4 OCIExtractInit()
- 21.5.5 OCIExtractReset()
- 21.5.6 OCIExtractSetKey()
- 21.5.7 OCIExtractSetNumKeys()
- 21.5.8 OCIExtractTerm()
- 21.5.9 OCIExtractToBool()
- 21.5.10 OCIExtractToInt()
- 21.5.11 OCIExtractToList()
- 21.5.12 OCIExtractToOCINum()
- 21.5.13 OCIExtractToStr()
- 21.6 Cartridge Services — File I/O Interface
- 21.7 Cartridge Services — String Formatting Interface
- 22
OCI Any Type and Data Functions
- 22.1 Introduction to Any Type and Data Interfaces
- 22.2 OCI Type Interface Functions
- 22.3
OCI Any Data Interface Functions
- 22.3.1 OCIAnyDataAccess()
- 22.3.2 OCIAnyDataAttrGet()
- 22.3.3 OCIAnyDataAttrSet()
- 22.3.4 OCIAnyDataBeginCreate()
- 22.3.5 OCIAnyDataCollAddElem()
- 22.3.6 OCIAnyDataCollGetElem()
- 22.3.7 OCIAnyDataConvert()
- 22.3.8 OCIAnyDataDestroy()
- 22.3.9 OCIAnyDataEndCreate()
- 22.3.10 OCIAnyDataGetCurrAttrNum()
- 22.3.11 OCIAnyDataGetType()
- 22.3.12 OCIAnyDataIsNull()
- 22.3.13 OCIAnyDataTypeCodeToSqlt()
- 22.4 OCI Any Data Set Interface Functions
- 23
OCI Globalization Support Functions
- 23.1 Introduction to Globalization Support in OCI
- 23.2 OCI Locale Functions
- 23.3 OCI Locale-Mapping Function
- 23.4
OCI String Manipulation Functions
- 23.4.1 OCIMultiByteInSizeToWideChar()
- 23.4.2 OCIMultiByteStrCaseConversion()
- 23.4.3 OCIMultiByteStrcat()
- 23.4.4 OCIMultiByteStrcmp()
- 23.4.5 OCIMultiByteStrcpy()
- 23.4.6 OCIMultiByteStrlen()
- 23.4.7 OCIMultiByteStrncat()
- 23.4.8 OCIMultiByteStrncmp()
- 23.4.9 OCIMultiByteStrncpy()
- 23.4.10 OCIMultiByteStrnDisplayLength()
- 23.4.11 OCIMultiByteToWideChar()
- 23.4.12 OCIWideCharInSizeToMultiByte()
- 23.4.13 OCIWideCharMultiByteLength()
- 23.4.14 OCIWideCharStrCaseConversion()
- 23.4.15 OCIWideCharStrcat()
- 23.4.16 OCIWideCharStrchr()
- 23.4.17 OCIWideCharStrcmp()
- 23.4.18 OCIWideCharStrcpy()
- 23.4.19 OCIWideCharStrlen()
- 23.4.20 OCIWideCharStrncat()
- 23.4.21 OCIWideCharStrncmp()
- 23.4.22 OCIWideCharStrncpy()
- 23.4.23 OCIWideCharStrrchr()
- 23.4.24 OCIWideCharToLower()
- 23.4.25 OCIWideCharToMultiByte()
- 23.4.26 OCIWideCharToUpper()
- 23.5
OCI Character Classification Functions
- 23.5.1 OCIWideCharIsAlnum()
- 23.5.2 OCIWideCharIsAlpha()
- 23.5.3 OCIWideCharIsCntrl()
- 23.5.4 OCIWideCharIsDigit()
- 23.5.5 OCIWideCharIsGraph()
- 23.5.6 OCIWideCharIsLower()
- 23.5.7 OCIWideCharIsPrint()
- 23.5.8 OCIWideCharIsPunct()
- 23.5.9 OCIWideCharIsSingleByte()
- 23.5.10 OCIWideCharIsSpace()
- 23.5.11 OCIWideCharIsUpper()
- 23.5.12 OCIWideCharIsXdigit()
- 23.6 OCI Character Set Conversion Functions
- 23.7 OCI Messaging Functions
- 24 OCI XML DB Functions
- 25 Oracle ODBC Driver
- 26 Introduction to the OCI Interface for XStream
- 27
OCI XStream Functions
- 27.1 Introduction to XStream Functions
- 27.2
OCI XStream Functions
- 27.2.1 OCILCRAttributesGet()
- 27.2.2 OCILCRAttributesSet()
- 27.2.3 OCILCRComparePosition()
- 27.2.4 OCILCRConvertPosition()
- 27.2.5 OCILCRFree()
- 27.2.6 OCILCRDDLInfoGet()
- 27.2.7 OCILCRHeaderGet()
- 27.2.8 OCILCRRowStmtGet()
- 27.2.9 OCILCRRowStmtWithBindVarGet()
- 27.2.10 OCILCRNew()
- 27.2.11 OCILCRRowColumnInfoGet()
- 27.2.12 OCILCRRowColumnInfoSet()
- 27.2.13 OCILCRDDLInfoSet()
- 27.2.14 OCILCRGetLCRIDVersion()
- 27.2.15 OCILCRHeaderSet()
- 27.2.16 OCILCRLobInfoGet()
- 27.2.17 OCILCRLobInfoSet()
- 27.2.18 OCILCRSCNsFromPosition()
- 27.2.19 OCILCRSCNToPosition()
- 27.2.20 OCILCRScnToPosition2()
- 27.2.21 OCILCRWhereClauseGet()
- 27.2.22 OCILCRWhereClauseWithBindVarGet()
- 27.2.23 OCIXStreamInAttach()
- 27.2.24 OCIXStreamInDetach()
- 27.2.25 OCIXStreamInLCRSend()
- 27.2.26 OCIXStreamInLCRCallbackSend()
- 27.2.27 OCIXStreamInProcessedLWMGet()
- 27.2.28 OCIXStreamInErrorGet()
- 27.2.29 OCIXStreamInFlush()
- 27.2.30 OCIXStreamInChunkSend()
- 27.2.31 OCIXStreamInCommit()
- 27.2.32 OCIXStreamInSessionSet()
- 27.2.33 OCIXStreamOutAttach()
- 27.2.34 OCIXStreamOutDetach()
- 27.2.35 OCIXStreamOutLCRReceive()
- 27.2.36 OCIXStreamOutLCRCallbackReceive()
- 27.2.37 OCIXStreamOutProcessedLWMSet()
- 27.2.38 OCIXStreamOutChunkReceive()
- 27.2.39 OCIXStreamOutGetNextChunk()
- 27.2.40 OCIXStreamOutSessionSet()
- A
Handle and Descriptor Attributes
- A.1 Conventions
- A.2 Environment Handle Attributes
- A.3 Error Handle Attributes
- A.4 Service Context Handle Attributes
- A.5 Server Handle Attributes
- A.6 Administration Handle Attributes
- A.7 Connection Pool Handle Attributes
- A.8 Transaction Handle Attributes
- A.9 Statement Handle Attributes
- A.10 Bind Handle Attributes
- A.11 Define Handle Attributes
- A.12 Describe Handle Attributes
- A.13 Parameter Descriptor Attributes
- A.14 Shard Instance Descriptor Attributes
- A.15 LOB Locator Attributes
- A.16 Complex Object Attributes
- A.17 Streams Advanced Queuing Descriptor Attributes
- A.18 Subscription Handle Attributes
- A.19
Direct Path Loading Handle Attributes
- A.19.1 Direct Path Context Handle (OCIDirPathCtx) Attributes
- A.19.2 Direct Path Function Context Handle (OCIDirPathFuncCtx) Attributes
- A.19.3 Direct Path Function Column Array Handle (OCIDirPathColArray) Attributes
- A.19.4 Direct Path Stream Handle (OCIDirPathStream) Attributes
- A.19.5 Direct Path Column Parameter Attributes
- A.20 Process Handle Attributes
- A.21 Event Handle Attributes
- B OCI Demonstration Programs
- C
OCI Function Server Round-Trips
- C.1 Overview of Server Round-Trips
- C.2 Relational Function Round-Trips
- C.3 LOB Function Round-Trips
- C.4 Object and Cache Function Round-Trips
- C.5 Describe Operation Round-Trips
- C.6 Data Type Mapping and Manipulation Function Round-Trips
- C.7 Any Type and Data Function Round-Trips
- C.8 Other Local Functions
- D
Getting Started with OCI for Windows
- D.1 What Is Included in the OCI Package for Windows?
- D.2 Oracle Directory Structure for Windows
- D.3 Sample OCI Programs for Windows
- D.4 About Compiling OCI Applications for Windows
- D.5 About Linking OCI Applications for Windows
- D.6 About Running OCI Applications for Windows
- D.7 Oracle XA Library
- D.8 About Using the Object Type Translator for Windows
- E Deprecated OCI Functions
- F
Multithreaded extproc Agent
- F.1 Why Use the Multithreaded extproc Agent?
- F.2 Multithreaded extproc Agent Architecture
- F.3
Administering the Multithreaded extproc Agent
- F.3.1 Agent Control Utility (agtctl) Commands
- F.3.2
About Using agtctl in Single-Line Command Mode
- F.3.2.1 Setting Configuration Parameters for a Multithreaded extproc Agent
- F.3.2.2 Starting a Multithreaded extproc Agent
- F.3.2.3 Shutting Down a Multithreaded extproc Agent
- F.3.2.4 Examining the Value of Configuration Parameters
- F.3.2.5 Resetting a Configuration Parameter to Its Default Value
- F.3.2.6 Deleting an Entry for a Specific SID from the Control File
- F.3.2.7 Requesting Help
- F.3.3 Using Shell Mode Commands
- F.3.4 Configuration Parameters for Multithreaded extproc Agent Control
- Index