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
- 1.1 Overview of OCI
- 1.2 Building an OCI Application
- 1.3 Alternatives to OCI
- 1.4 SQL Statements
- 1.5 Procedural and Nonprocedural Elements
- 1.6 Object Support
- 1.7 Simple Oracle Document Access (SODA)
- 1.8 Encapsulated Interfaces
- 1.9 User Authentication and Password Management
- 1.10 Features to Improve Application Performance and Scalability
- 1.11 Oracle Database Advanced Queuing
- 1.12 XA Library Support
-
2
Oracle Instant Client and Oracle Instant Client Light
- 2.1 About Oracle Instant Client
- 2.2 Install from ZIP Files, from RPMs, and from Oracle Universal Installer
- 2.3 Environment Variables for Oracle Instant Client
- 2.4 Database Connection Strings for Oracle Instant Client
- 2.5 SDK for Oracle Instant Client
- 2.6 About Oracle Instant Client Light
- 2.7 About Patching Oracle Instant Client Shared Libraries on Linux or UNIX
-
2.8
Regeneration of Data Shared Library and Zip and RPM Files
- 2.8.1 Regenerating Data Shared Library libociei.so
- 2.8.2 Regenerating Data Shared Library libociicus.so
- 2.8.3 Regenerating Data Shared Libraries libociei.so and libociicus.so in One Step
- 2.8.4 Regenerating Zip and RPM Files for the Basic Package
- 2.8.5 Regenerating Zip and RPM Files for the Basic Light Package
- 2.8.6 Regenerating Zip and RPM Files for the JDBC Package
- 2.8.7 Regenerating Zip and RPM Files for the ODBC Package
- 2.8.8 Regenerating Zip and RPM Files for the SQL*Plus Package
- 2.8.9 Regenerating Zip and RPM Files for the Tools Package
- 2.8.10 Regenerating Zip and RPM Files for All Packages
-
3
Building and Configuring OCI Applications
- 3.1 Header File and Makefile Locations
- 3.2 Building an OCI Application on Linux and UNIX
- 3.3 Building an Application on Windows
- 3.4 Database Connection Strings
- 3.5 Client and Server Operating with Different Versions of Time Zone Files
-
3.6
OCI Client-Side Deployment Parameters Using oraaccess.xml
- 3.6.1 About oraaccess.xml
- 3.6.2 About Client-Side Deployment Parameters Specified in oraaccess.xml
- 3.6.3 High Level Structure of oraaccess.xml
- 3.6.4 About Specifying Global Parameters in oraaccess.xml
- 3.6.5 About Specifying Defaults for Connection Parameters
- 3.6.6 Overriding Connection Parameters at the Connection-String Level
- 3.6.7 About OCI Session Pool Configuration in oraaccess.xml
- 3.6.8 File (oraaccess.xml) Properties
- 3.7 About Compatibility and Upgrading
- 3.8 Fault Diagnosability in OCI
-
4
OCI Programming Basics
- 4.1 Overview of OCI Program Programming
-
4.2
OCI Data Structures
-
4.2.1
Handles
- 4.2.1.1 About Allocating and Freeing Handles
- 4.2.1.2 Environment Handle
- 4.2.1.3 Error Handle
- 4.2.1.4 Service Context Handle and Associated Handles
- 4.2.1.5 Statement, Bind, and Define Handles
- 4.2.1.6 Describe Handle
- 4.2.1.7 Complex Object Retrieval Handle
- 4.2.1.8 Thread Handle
- 4.2.1.9 Subscription Handle
- 4.2.1.10 Direct Path Handles
- 4.2.1.11 Connection Pool Handle
- 4.2.1.12 Handle Attributes
- 4.2.1.13 OCI Descriptors
-
4.2.1
Handles
- 4.3 OCI Programming Steps
-
4.4
Additional Coding Guidelines
- 4.4.1 Operating System Considerations
- 4.4.2 Parameter Types
- 4.4.3 Inserting Nulls into a Column
- 4.4.4 Indicator Variables
- 4.4.5 About Canceling Calls
- 4.4.6 Positioned Updates and Deletes
- 4.4.7 Reserved Words
- 4.4.8 Polling Mode Operations in OCI
- 4.4.9 Nonblocking Mode in OCI
- 4.4.10 Setting Blocking Modes
- 4.4.11 Canceling a Nonblocking Call
- 4.5 About Using PL/SQL in an OCI Program
-
4.6
OCI Globalization Support
- 4.6.1 Client Character Set Control from OCI
- 4.6.2 Character Control and OCI Interfaces
- 4.6.3 Character-Length Semantics in OCI
- 4.6.4 Character Set Support in OCI
- 4.6.5 Controlling Language and Territory in OCI
- 4.6.6 Other OCI Globalization Support Functions
- 4.6.7 About Getting Locale Information in OCI
- 4.6.8 About OCI and the BOM (Byte Order Mark)
- 4.6.9 About Manipulating Strings in OCI
- 4.6.10 About Converting Character Sets in OCI
- 4.6.11 OCI Messaging Functions
- 4.6.12 lmsgen Utility
-
5
Data Types
- 5.1 Oracle Data Types
- 5.2 Internal Data Types
-
5.3
External Data Types
- 5.3.1 VARCHAR2
- 5.3.2 NUMBER
- 5.3.3 64-Bit Integer Host Data Type
- 5.3.4 INTEGER
- 5.3.5 FLOAT
- 5.3.6 STRING
- 5.3.7 VARNUM
- 5.3.8 LONG
- 5.3.9 VARCHAR
- 5.3.10 DATE
- 5.3.11 RAW
- 5.3.12 VARRAW
- 5.3.13 LONG RAW
- 5.3.14 UNSIGNED
- 5.3.15 LONG VARCHAR
- 5.3.16 LONG VARRAW
- 5.3.17 CHAR
- 5.3.18 CHARZ
- 5.3.19 Named Data Types: Object, VARRAY, Nested Table
- 5.3.20 REF
- 5.3.21 ROWID Descriptor
- 5.3.22 LOB Descriptor
- 5.3.23 Datetime and Interval Data Type Descriptors
- 5.3.24 Native Float and Native Double
- 5.3.25 C Object-Relational Data Type Mappings
- 5.4 Data Conversions
- 5.5 Typecodes
- 5.6 Definitions in oratypes.h
- 6 Using SQL Statements in OCI
-
7
Binding and Defining in OCI
- 7.1 Overview of Binding in OCI
- 7.2 Advanced Bind Operations in OCI
- 7.3 Overview of Defining in OCI
- 7.4 Advanced Define Operations in OCI
- 7.5 About Binding and Defining Arrays of Structures in OCI
- 7.6 About Binding and Defining Multiple Buffers
- 7.7 DML with a RETURNING Clause in OCI
-
7.8
Character Conversion in OCI Binding and Defining
- 7.8.1 About Choosing a Character Set
- 7.8.2 About Setting Client Character Sets in OCI
- 7.8.3 About Binding Variables in OCI
- 7.9 PL/SQL REF CURSORs and Nested Tables in OCI
- 7.10 Natively Describe and Bind All PL/SQL Types Including Package Types
-
7.11
Runtime Data Allocation and Piecewise Operations in OCI
- 7.11.1 Valid Data Types for Piecewise Operations
- 7.11.2 Types of Piecewise Operations
- 7.11.3 About Providing INSERT or UPDATE Data at Runtime
- 7.11.4 Piecewise Operations with PL/SQL
- 7.11.5 PL/SQL Indexed Table Binding Support
- 7.11.6 About Providing FETCH Information at Run Time
- 7.11.7 Piecewise Binds and Defines for LOBs
-
8
Describing Schema Metadata
- 8.1 About Using OCIDescribeAny()
-
8.2
Parameter Attributes
- 8.2.1 Table or View Parameters
- 8.2.2 Procedure, Function, and Subprogram Attributes
- 8.2.3 Package Attributes
- 8.2.4 Type Attributes
- 8.2.5 Type Attribute Attributes
- 8.2.6 Type Method Attributes
- 8.2.7 Collection Attributes
- 8.2.8 Synonym Attributes
- 8.2.9 Sequence Attributes
- 8.2.10 Column Attributes
- 8.2.11 Argument and Result Attributes
- 8.2.12 List Attributes
- 8.2.13 Schema Attributes
- 8.2.14 Database Attributes
- 8.2.15 Rule Attributes
- 8.2.16 Rule Set Attributes
- 8.2.17 Evaluation Context Attributes
- 8.2.18 Table Alias Attributes
- 8.2.19 Variable Type Attributes
- 8.2.20 Name Value Attributes
- 8.3 Character-Length Semantics Support in Describe Operations
-
8.4
Examples Using OCIDescribeAny()
- 8.4.1 Retrieving Column Data Types for a Table
- 8.4.2 Describing the Stored Procedure
- 8.4.3 Retrieving Attributes of an Object Type
- 8.4.4 Retrieving the Collection Element's Data Type of a Named Collection Type
- 8.4.5 Describing with Character-Length Semantics
- 8.4.6 Describing Each Column to Know Whether It Is an Invisible Column
-
9
LOB and BFILE Operations
- 9.1 About Using OCI Functions for LOBs
- 9.2 About Creating and Modifying Persistent LOBs
- 9.3 About Associating a BFILE in a Table with an Operating System File
- 9.4 LOB Attributes of an Object
- 9.5 Array Interface for LOBs
- 9.6 About Using LOBs of Size Greater than 4 GB
- 9.7 LOB and BFILE Functions in OCI
- 9.8 Temporary LOB Support
- 9.9 Prefetching of LOB Data, Length, and Chunk Size
- 9.10 Options of SecureFiles LOBs
-
10
Managing Scalable Platforms
- 10.1 OCI Support for Transactions
-
10.2
Levels of Transactional Complexity
- 10.2.1 Simple Local Transactions
- 10.2.2 Serializable or Read-Only Local Transactions
-
10.2.3
Global Transactions
- 10.2.3.1 Transaction Identifiers
- 10.2.3.2 Attribute OCI_ATTR_TRANS_NAME
- 10.2.3.3 Transaction Branches
- 10.2.3.4 Branch States
- 10.2.3.5 Detaching and Resuming Branches
- 10.2.3.6 About Setting the Client Database Name
- 10.2.3.7 One-Phase Commit Versus Two-Phase Commit
- 10.2.3.8 Preparing Multiple Branches in a Single Message
- 10.2.4 Transaction Examples
- 10.2.5 Initialization Parameters
- 10.3 Password and Session Management
- 10.4 Middle-Tier Applications in OCI
- 10.5 Externally Initialized Context in OCI
- 10.6 Client Application Context
- 10.7 Using Edition-Based Redefinition
- 10.8 OCI Security Enhancements
- 10.9 Overview of OCI Multithreaded Development
- 10.10 OCIThread Package
-
11
Session Pooling and Connection Pooling in OCI
- 11.1 Session Pooling in OCI
- 11.2 Database Resident Connection Pooling
- 11.3 About Using Oracle Connection Manager in Traffic Director Mode
- 11.4 Connection Pooling in OCI
- 11.5 When to Use Connection Pooling, Session Pooling, or Neither
-
12
High Availability in OCI
- 12.1 Runtime Connection Load Balancing
- 12.2 HA Event Notification
-
12.3
Transparent Application Failover in OCI
- 12.3.1 About Configuring Transparent Application Failover
- 12.3.2 Transparent Application Failover Callbacks in OCI
- 12.3.3 Transparent Application Failover Callback Structure and Parameters
- 12.3.4 Failover Callback Structure and Parameters
- 12.3.5 Failover Callback Registration
- 12.3.6 Failover Callback Example
- 12.3.7 Handling OCI_FO_ERROR
- 12.4 OCI and Transaction Guard
- 12.5 OCI and Application Continuity
-
13
Notification Methods and Database Advanced
Queuing
- 13.1 About Continuous Query Notification
-
13.2
Publish-Subscribe Notification in OCI
-
13.2.1
Publish-Subscribe Registration Functions in OCI
- 13.2.1.1 Publish-Subscribe Register Directly to the Database
- 13.2.1.2 Open Registration for Publish-Subscribe
- 13.2.1.3 Using OCI to Open Register with LDAP
- 13.2.1.4 Setting QOS, Timeout Interval, Namespace, Client Address, and Port Number
- 13.2.1.5 OCI Functions Used to Manage Publish-Subscribe Notification
- 13.2.2 Notification Callback in OCI
- 13.2.3 Notification Procedure
- 13.2.4 Publish-Subscribe Direct Registration Example
- 13.2.5 Publish-Subscribe LDAP Registration Example
-
13.2.1
Publish-Subscribe Registration Functions in OCI
- 13.3 OCI and Database Advanced Queuing
-
14
User-Defined Callback Functions in OCI
-
14.1
About Registering User Callbacks in OCI
- 14.1.1 OCIUserCallbackRegister
- 14.1.2 User Callback Function
- 14.1.3 User Callback Control Flow
- 14.1.4 User Callback for OCIErrorGet()
- 14.1.5 Errors from Entry Callbacks
- 14.1.6 Dynamic Callback Registrations
- 14.1.7 About Loading Multiple Packages
- 14.1.8 Package Format
- 14.1.9 User Callback Chaining
- 14.1.10 About Accessing Other Data Sources Through OCI
- 14.1.11 Restrictions on Callback Functions
- 14.1.12 Example of OCI Callbacks
- 14.2 OCI Callbacks from External Procedures
-
14.1
About Registering User Callbacks in OCI
-
15
Performance Topics
- 15.1 Statement Caching in OCI
- 15.2 Implicit Fetching of ROWIDs
- 15.3 OCI Support for Implicit Results
- 15.4 Client Result Cache
-
15.5
Client Statement Cache Auto-Tuning
- 15.5.1 About Auto-Tuning Client Statement Cache
- 15.5.2 Benefit of Auto-Tuning Client Statement Cache
- 15.5.3 Client Statement Cache Auto-Tuning Parameters
- 15.5.4 Usage Examples of Client Statement Cache Auto Tuning
- 15.5.5 Enabling and Disabling OCI Client Auto-Tuning
- 15.5.6 Usage Guidelines for Auto-Tuning Client Statement Cache
- 16 Database Startup and Shutdown
-
17
Support for Pluggable Databases
- 17.1 Enhancements on OCI API Calls with Multitenant Container Databases (CDB) in General
- 17.2 OCI Enhancements for ALTER SESSION SET CONTAINER
- 17.3 Restrictions on OCI API Calls with Multitenant Container Databases (CDB) in General
- 17.4 Restrictions on OCI Calls with ALTER SESSION SET CONTAINER
- 17.5 Restrictions on OCI Calls with ALTER SESSION SWITCH CONTAINER SWITCH SERVICE
- 18 OCI Interface for Using Shards
-
19
OCI Object-Relational Programming
- 19.1 OCI Object Overview
- 19.2 About Working with Objects in OCI
-
19.3
About Developing an OCI Object Application
- 19.3.1 About Representing Objects in C Applications
- 19.3.2 About Initializing the Environment and the Object Cache
- 19.3.3 About Making Database Connections
- 19.3.4 Retrieving an Object Reference from the Server
- 19.3.5 Pinning an Object
- 19.3.6 Manipulating Object Attributes
- 19.3.7 About Marking Objects and Flushing Changes
- 19.3.8 Fetching Embedded Objects
- 19.3.9 Object Meta-Attributes
- 19.3.10 Complex Object Retrieval
- 19.3.11 COR Prefetching
- 19.3.12 OCI Versus SQL Access to Objects
- 19.3.13 Pin Count and Unpinning
- 19.3.14 NULL Indicator Structure
- 19.3.15 About Creating Objects
- 19.3.16 About Freeing and Copying Objects
- 19.3.17 Object Reference and Type Reference
- 19.3.18 Create Objects Based on Object Views and Object Tables with Primary-Key-Based OIDs
- 19.3.19 Error Handling in Object Applications
- 19.4 About Type Inheritance
- 19.5 About Type Evolution
-
20
Object-Relational Data Types in OCI
- 20.1 Overview of OCI Functions for Objects
- 20.2 About Mapping Oracle Data Types to C
- 20.3 About Manipulating C Data Types with OCI
- 20.4 Date (OCIDate)
- 20.5 Datetime and Interval (OCIDateTime, OCIInterval)
- 20.6 Number (OCINumber)
- 20.7 Fixed or Variable-Length String (OCIString)
- 20.8 Raw (OCIRaw)
- 20.9 Collections (OCITable, OCIArray, OCIColl, OCIIter)
- 20.10 About Multilevel Collection Types
- 20.11 REF (OCIRef)
- 20.12 Object Type Information Storage and Access
- 20.13 AnyType, AnyData, and AnyDataSet Interfaces
- 20.14 About Binding Named Data Types
- 20.15 About Defining Named Data Types
- 20.16 About Binding and Defining Oracle C Data Types
- 20.17 SQLT_NTY Bind and Define Examples
-
21
Direct Path Load Interface
-
21.1
Direct Path Loading Overview
- 21.1.1 Data Types Supported for Direct Path Loading
- 21.1.2 Direct Path Handles
- 21.1.3 About Direct Path Interface Functions
- 21.1.4 Limitations and Restrictions of the Direct Path Load Interface
- 21.1.5 Direct Path Load Examples for Scalar Columns
- 21.1.6 About Using a Date Cache in Direct Path Loading of Dates in OCI
- 21.1.7 About Validating Format for Oracle NUMBER and DATE Data
-
21.2
Direct Path Loading of Object Types
- 21.2.1 Direct Path Loading of Nested Tables
- 21.2.2 Direct Path Loading of Column Objects
- 21.2.3 Direct Path Loading of SQL String Columns
- 21.2.4 Direct Path Loading of REF Columns
- 21.2.5 Direct Path Loading of NOT FINAL Object and REF Columns
- 21.2.6 Direct Path Loading of Object Tables
- 21.2.7 Direct Path Loading a NOT FINAL Object Table
- 21.3 Direct Path Loading in Pieces
- 21.4 Direct Path Context Handles and Attributes for Object Types
-
21.1
Direct Path Loading Overview
-
22
Object Advanced Topics in OCI
-
22.1
Object Cache and Memory Management
- 22.1.1 Cache Consistency and Coherency
- 22.1.2 Object Cache Parameters
- 22.1.3 Object Cache Operations
- 22.1.4 About Loading and Removing Object Copies
- 22.1.5 About Making Changes to Object Copies
- 22.1.6 About Synchronizing Object Copies with the Server
- 22.1.7 Object Locking
- 22.1.8 Commit and Rollback in Object Applications
- 22.1.9 Object Duration
- 22.1.10 Memory Layout of an Instance
- 22.2 Object Navigation
- 22.3 OCI Navigational Functions
- 22.4 Type Evolution and the Object Cache
-
22.1
Object Cache and Memory Management
-
23
OCI Support for XML
- 23.1 XML Context
- 23.2 XML Data on the Server
- 23.3 Using OCI XML DB Functions
-
23.4
OCI Client Access to Binary XML
- 23.4.1 Accessing XML Data from an OCI Application
- 23.4.2 Repository Context
- 23.4.3 Create Repository Context from a Dedicated OCI Connection
- 23.4.4 Create Repository Context from a Connection Pool
- 23.4.5 About Associating Repository Context with a Data Connection
- 23.4.6 About Setting XMLType Encoding Format Preference
- 23.4.7 Example of Using a Connection Pool
-
24
Using the Object Type Translator with OCI
- 24.1 What Is the Object Type Translator?
- 24.2 OTT Command Line
- 24.3 Intype File
- 24.4 OTT Data Type Mappings
- 24.5 Outtype File
- 24.6 About Using OTT with OCI Applications
-
24.7
OTT Reference
- 24.7.1 OTT Command-Line Syntax
- 24.7.2 OTT Parameters
- 24.7.3 Where OTT Parameters Can Appear
- 24.7.4 Structure of the Intype File
- 24.7.5 Nested Included File Generation
- 24.7.6 SCHEMA_NAMES Usage
- 24.7.7 Default Name Mapping
- 24.7.8 OTT Restriction on File Name Comparison
- 24.7.9 OTT Command on Microsoft Windows
-
25
Oracle Database Access C API
- 25.1 Introduction to the Relational Functions
-
25.2
Connect, Authorize, and Initialize Functions
- 25.2.1 OCIAppCtxClearAll()
- 25.2.2 OCIAppCtxSet()
- 25.2.3 OCIConnectionPoolCreate()
- 25.2.4 OCIConnectionPoolDestroy()
- 25.2.5 OCIDBShutdown()
- 25.2.6 OCIDBStartup()
- 25.2.7 OCIEnvCreate()
- 25.2.8 OCIEnvNlsCreate()
- 25.2.9 OCILogoff()
- 25.2.10 OCILogon()
- 25.2.11 OCILogon2()
- 25.2.12 OCIRequestDisableReplay()
- 25.2.13 OCIServerAttach()
- 25.2.14 OCIServerDetach()
- 25.2.15 OCISessionBegin()
- 25.2.16 OCISessionEnd()
- 25.2.17 OCISessionGet()
- 25.2.18 OCISessionPoolCreate()
- 25.2.19 OCISessionPoolDestroy()
- 25.2.20 OCISessionRelease()
- 25.2.21 OCITerminate()
- 25.3 Handle and Descriptor Functions
-
25.4
Bind, Define, and Describe Functions
- 25.4.1 OCIBindArrayOfStruct()
- 25.4.2 OCIBindByName()
- 25.4.3 OCIBindByName2()
- 25.4.4 OCIBindByPos()
- 25.4.5 OCIBindByPos2()
- 25.4.6 OCIBindDynamic()
- 25.4.7 OCIBindObject()
- 25.4.8 OCIDefineArrayOfStruct()
- 25.4.9 OCIDefineByPos()
- 25.4.10 OCIDefineByPos2()
- 25.4.11 OCIDefineDynamic()
- 25.4.12 OCIDefineObject()
- 25.4.13 OCIDescribeAny()
- 25.4.14 OCIStmtGetBindInfo()
-
26
More Oracle Database Access C API
- 26.1 Introduction to the Relational Functions
- 26.2 Statement Functions
-
26.3
LOB Functions
- 26.3.1 OCIDurationBegin()
- 26.3.2 OCIDurationEnd()
- 26.3.3 OCILobAppend()
- 26.3.4 OCILobArrayRead()
- 26.3.5 OCILobArrayWrite()
- 26.3.6 OCILobAssign()
- 26.3.7 OCILobCharSetForm()
- 26.3.8 OCILobCharSetId()
- 26.3.9 OCILobClose()
- 26.3.10 OCILobCopy2()
- 26.3.11 OCILobCreateTemporary()
- 26.3.12 OCILobErase2()
- 26.3.13 OCILobFileClose()
- 26.3.14 OCILobFileCloseAll()
- 26.3.15 OCILobFileExists()
- 26.3.16 OCILobFileGetName()
- 26.3.17 OCILobFileIsOpen()
- 26.3.18 OCILobFileOpen()
- 26.3.19 OCILobFileSetName()
- 26.3.20 OCILobFreeTemporary()
- 26.3.21 OCILobGetChunkSize()
- 26.3.22 OCILobGetContentType()
- 26.3.23 OCILobGetLength2()
- 26.3.24 OCILobGetOptions()
- 26.3.25 OCILobGetStorageLimit()
- 26.3.26 OCILobIsEqual()
- 26.3.27 OCILobIsOpen()
- 26.3.28 OCILobIsTemporary()
- 26.3.29 OCILobLoadFromFile2()
- 26.3.30 OCILobLocatorAssign()
- 26.3.31 OCILobLocatorIsInit()
- 26.3.32 OCILobOpen()
- 26.3.33 OCILobRead2()
- 26.3.34 OCILobSetContentType()
- 26.3.35 OCILobSetOptions()
- 26.3.36 OCILobTrim2()
- 26.3.37 OCILobWrite2()
- 26.3.38 OCILobWriteAppend2()
- 26.4 Database Advanced Queuing and Publish-Subscribe Functions
-
26.5
Direct Path Loading Functions
- 26.5.1 OCIDirPathAbort()
- 26.5.2 OCIDirPathColArrayEntryGet()
- 26.5.3 OCIDirPathColArrayEntrySet()
- 26.5.4 OCIDirPathColArrayReset()
- 26.5.5 OCIDirPathColArrayRowGet()
- 26.5.6 OCIDirPathColArrayToStream()
- 26.5.7 OCIDirPathDataSave()
- 26.5.8 OCIDirPathFinish()
- 26.5.9 OCIDirPathFlushRow()
- 26.5.10 OCIDirPathLoadStream()
- 26.5.11 OCIDirPathPrepare()
- 26.5.12 OCIDirPathStreamReset()
-
26.6
Thread Management Functions
- 26.6.1 OCIThreadClose()
- 26.6.2 OCIThreadCreate()
- 26.6.3 OCIThreadHandleGet()
- 26.6.4 OCIThreadHndDestroy()
- 26.6.5 OCIThreadHndInit()
- 26.6.6 OCIThreadIdDestroy()
- 26.6.7 OCIThreadIdGet()
- 26.6.8 OCIThreadIdInit()
- 26.6.9 OCIThreadIdNull()
- 26.6.10 OCIThreadIdSame()
- 26.6.11 OCIThreadIdSet()
- 26.6.12 OCIThreadIdSetNull()
- 26.6.13 OCIThreadInit()
- 26.6.14 OCIThreadIsMulti()
- 26.6.15 OCIThreadJoin()
- 26.6.16 OCIThreadKeyDestroy()
- 26.6.17 OCIThreadKeyGet()
- 26.6.18 OCIThreadKeyInit()
- 26.6.19 OCIThreadKeySet()
- 26.6.20 OCIThreadMutexAcquire()
- 26.6.21 OCIThreadMutexDestroy()
- 26.6.22 OCIThreadMutexInit()
- 26.6.23 OCIThreadMutexRelease()
- 26.6.24 OCIThreadProcessInit()
- 26.6.25 OCIThreadTerm()
- 26.7 Transaction Functions
- 26.8 Sharding Functions
-
26.9
Miscellaneous Functions
- 26.9.1 OCIBreak()
- 26.9.2 OCIClientVersion()
- 26.9.3 OCIErrorGet()
- 26.9.4 OCILdaToSvcCtx()
- 26.9.5 OCIPasswordChange()
- 26.9.6 OCIPing()
- 26.9.7 OCIReset()
- 26.9.8 OCIRowidToChar()
- 26.9.9 OCIServerRelease()
- 26.9.10 OCIServerRelease2()
- 26.9.11 OCIServerVersion()
- 26.9.12 OCISvcCtxToLda()
- 26.9.13 OCIUserCallbackGet()
- 26.9.14 OCIUserCallbackRegister()
-
27
OCI Navigational and Type Functions
- 27.1 Introduction to the Navigational and Type Functions
- 27.2 OCI Flush or Refresh Functions
- 27.3 OCI Mark or Unmark Object and Cache Functions
- 27.4 OCI Get Object Status Functions
- 27.5 OCI Miscellaneous Object Functions
- 27.6 OCI Pin, Unpin, and Free Functions
- 27.7 OCI Type Information Accessor Functions
-
28
OCI Data Type Mapping and Manipulation Functions
- 28.1 Introduction to Data Type Mapping and Manipulation Functions
-
28.2
OCI Collection and Iterator Functions
- 28.2.1 OCICollAppend()
- 28.2.2 OCICollAssign()
- 28.2.3 OCICollAssignElem()
- 28.2.4 OCICollGetElem()
- 28.2.5 OCICollGetElemArray()
- 28.2.6 OCICollIsLocator()
- 28.2.7 OCICollMax()
- 28.2.8 OCICollSize()
- 28.2.9 OCICollTrim()
- 28.2.10 OCIIterCreate()
- 28.2.11 OCIIterDelete()
- 28.2.12 OCIIterGetCurrent()
- 28.2.13 OCIIterInit()
- 28.2.14 OCIIterNext()
- 28.2.15 OCIIterPrev()
-
28.3
OCI Date, Datetime, and Interval Functions
- 28.3.1 OCIDateAddDays()
- 28.3.2 OCIDateAddMonths()
- 28.3.3 OCIDateAssign()
- 28.3.4 OCIDateCheck()
- 28.3.5 OCIDateCompare()
- 28.3.6 OCIDateDaysBetween()
- 28.3.7 OCIDateFromText()
- 28.3.8 OCIDateGetDate()
- 28.3.9 OCIDateGetTime()
- 28.3.10 OCIDateLastDay()
- 28.3.11 OCIDateNextDay()
- 28.3.12 OCIDateSetDate()
- 28.3.13 OCIDateSetTime()
- 28.3.14 OCIDateSysDate()
- 28.3.15 OCIDateTimeAssign()
- 28.3.16 OCIDateTimeCheck()
- 28.3.17 OCIDateTimeCompare()
- 28.3.18 OCIDateTimeConstruct()
- 28.3.19 OCIDateTimeConvert()
- 28.3.20 OCIDateTimeFromArray()
- 28.3.21 OCIDateTimeFromText()
- 28.3.22 OCIDateTimeGetDate()
- 28.3.23 OCIDateTimeGetTime()
- 28.3.24 OCIDateTimeGetTimeZoneName()
- 28.3.25 OCIDateTimeGetTimeZoneOffset()
- 28.3.26 OCIDateTimeIntervalAdd()
- 28.3.27 OCIDateTimeIntervalSub()
- 28.3.28 OCIDateTimeSubtract()
- 28.3.29 OCIDateTimeSysTimeStamp()
- 28.3.30 OCIDateTimeToArray()
- 28.3.31 OCIDateTimeToText()
- 28.3.32 OCIDateToText()
- 28.3.33 OCIDateZoneToZone()
- 28.3.34 OCIIntervalAdd()
- 28.3.35 OCIIntervalAssign()
- 28.3.36 OCIIntervalCheck()
- 28.3.37 OCIIntervalCompare()
- 28.3.38 OCIIntervalDivide()
- 28.3.39 OCIIntervalFromNumber()
- 28.3.40 OCIIntervalFromText()
- 28.3.41 OCIIntervalFromTZ()
- 28.3.42 OCIIntervalGetDaySecond()
- 28.3.43 OCIIntervalGetYearMonth()
- 28.3.44 OCIIntervalMultiply()
- 28.3.45 OCIIntervalSetDaySecond()
- 28.3.46 OCIIntervalSetYearMonth()
- 28.3.47 OCIIntervalSubtract()
- 28.3.48 OCIIntervalToNumber()
- 28.3.49 OCIIntervalToText()
-
28.4
OCI NUMBER Functions
- 28.4.1 OCINumberAbs()
- 28.4.2 OCINumberAdd()
- 28.4.3 OCINumberArcCos()
- 28.4.4 OCINumberArcSin()
- 28.4.5 OCINumberArcTan()
- 28.4.6 OCINumberArcTan2()
- 28.4.7 OCINumberAssign()
- 28.4.8 OCINumberCeil()
- 28.4.9 OCINumberCmp()
- 28.4.10 OCINumberCos()
- 28.4.11 OCINumberDec()
- 28.4.12 OCINumberDiv()
- 28.4.13 OCINumberExp()
- 28.4.14 OCINumberFloor()
- 28.4.15 OCINumberFromInt()
- 28.4.16 OCINumberFromReal()
- 28.4.17 OCINumberFromText()
- 28.4.18 OCINumberHypCos()
- 28.4.19 OCINumberHypSin()
- 28.4.20 OCINumberHypTan()
- 28.4.21 OCINumberInc()
- 28.4.22 OCINumberIntPower()
- 28.4.23 OCINumberIsInt()
- 28.4.24 OCINumberIsZero()
- 28.4.25 OCINumberLn()
- 28.4.26 OCINumberLog()
- 28.4.27 OCINumberMod()
- 28.4.28 OCINumberMul()
- 28.4.29 OCINumberNeg()
- 28.4.30 OCINumberPower()
- 28.4.31 OCINumberPrec()
- 28.4.32 OCINumberRound()
- 28.4.33 OCINumberSetPi()
- 28.4.34 OCINumberSetZero()
- 28.4.35 OCINumberShift()
- 28.4.36 OCINumberSign()
- 28.4.37 OCINumberSin()
- 28.4.38 OCINumberSqrt()
- 28.4.39 OCINumberSub()
- 28.4.40 OCINumberTan()
- 28.4.41 OCINumberToInt()
- 28.4.42 OCINumberToReal()
- 28.4.43 OCINumberToRealArray()
- 28.4.44 OCINumberToText()
- 28.4.45 OCINumberTrunc()
- 28.5 OCI Raw Functions
- 28.6 OCI REF Functions
- 28.7 OCI String Functions
- 28.8 OCI Table Functions
-
29
OCI Cartridge Functions
- 29.1 Introduction to External Procedure and Cartridge Services Functions
- 29.2 Cartridge Services — OCI External Procedures
- 29.3 Cartridge Services — Memory Services
- 29.4 Cartridge Services — Maintaining Context
-
29.5
Cartridge Services — Parameter Manager Interface
- 29.5.1 OCIExtractFromFile()
- 29.5.2 OCIExtractFromList()
- 29.5.3 OCIExtractFromStr()
- 29.5.4 OCIExtractInit()
- 29.5.5 OCIExtractReset()
- 29.5.6 OCIExtractSetKey()
- 29.5.7 OCIExtractSetNumKeys()
- 29.5.8 OCIExtractTerm()
- 29.5.9 OCIExtractToBool()
- 29.5.10 OCIExtractToInt()
- 29.5.11 OCIExtractToList()
- 29.5.12 OCIExtractToOCINum()
- 29.5.13 OCIExtractToStr()
- 29.6 Cartridge Services — File I/O Interface
- 29.7 Cartridge Services — String Formatting Interface
-
30
OCI Any Type and Data Functions
- 30.1 Introduction to Any Type and Data Interfaces
- 30.2 OCI Type Interface Functions
-
30.3
OCI Any Data Interface Functions
- 30.3.1 OCIAnyDataAccess()
- 30.3.2 OCIAnyDataAttrGet()
- 30.3.3 OCIAnyDataAttrSet()
- 30.3.4 OCIAnyDataBeginCreate()
- 30.3.5 OCIAnyDataCollAddElem()
- 30.3.6 OCIAnyDataCollGetElem()
- 30.3.7 OCIAnyDataConvert()
- 30.3.8 OCIAnyDataDestroy()
- 30.3.9 OCIAnyDataEndCreate()
- 30.3.10 OCIAnyDataGetCurrAttrNum()
- 30.3.11 OCIAnyDataGetType()
- 30.3.12 OCIAnyDataIsNull()
- 30.3.13 OCIAnyDataTypeCodeToSqlt()
- 30.4 OCI Any Data Set Interface Functions
-
31
OCI Globalization Support Functions
- 31.1 Introduction to Globalization Support in OCI
- 31.2 OCI Locale Functions
- 31.3 OCI Locale-Mapping Function
-
31.4
OCI String Manipulation Functions
- 31.4.1 OCIMultiByteInSizeToWideChar()
- 31.4.2 OCIMultiByteStrCaseConversion()
- 31.4.3 OCIMultiByteStrcat()
- 31.4.4 OCIMultiByteStrcmp()
- 31.4.5 OCIMultiByteStrcpy()
- 31.4.6 OCIMultiByteStrlen()
- 31.4.7 OCIMultiByteStrncat()
- 31.4.8 OCIMultiByteStrncmp()
- 31.4.9 OCIMultiByteStrncpy()
- 31.4.10 OCIMultiByteStrnDisplayLength()
- 31.4.11 OCIMultiByteToWideChar()
- 31.4.12 OCIWideCharInSizeToMultiByte()
- 31.4.13 OCIWideCharMultiByteLength()
- 31.4.14 OCIWideCharStrCaseConversion()
- 31.4.15 OCIWideCharStrcat()
- 31.4.16 OCIWideCharStrchr()
- 31.4.17 OCIWideCharStrcmp()
- 31.4.18 OCIWideCharStrcpy()
- 31.4.19 OCIWideCharStrlen()
- 31.4.20 OCIWideCharStrncat()
- 31.4.21 OCIWideCharStrncmp()
- 31.4.22 OCIWideCharStrncpy()
- 31.4.23 OCIWideCharStrrchr()
- 31.4.24 OCIWideCharToLower()
- 31.4.25 OCIWideCharToMultiByte()
- 31.4.26 OCIWideCharToUpper()
-
31.5
OCI Character Classification Functions
- 31.5.1 OCIWideCharIsAlnum()
- 31.5.2 OCIWideCharIsAlpha()
- 31.5.3 OCIWideCharIsCntrl()
- 31.5.4 OCIWideCharIsDigit()
- 31.5.5 OCIWideCharIsGraph()
- 31.5.6 OCIWideCharIsLower()
- 31.5.7 OCIWideCharIsPrint()
- 31.5.8 OCIWideCharIsPunct()
- 31.5.9 OCIWideCharIsSingleByte()
- 31.5.10 OCIWideCharIsSpace()
- 31.5.11 OCIWideCharIsUpper()
- 31.5.12 OCIWideCharIsXdigit()
- 31.6 OCI Character Set Conversion Functions
- 31.7 OCI Messaging Functions
- 32 OCI XML DB Functions
- 33 Oracle ODBC Driver
- 34 Introduction to the OCI Interface for XStream
-
35
OCI XStream Functions
- 35.1 About Using the XStream Interface
- 35.2 Introduction to XStream Functions
-
35.3
OCI XStream Functions
- 35.3.1 OCILCRAttributesGet()
- 35.3.2 OCILCRAttributesSet()
- 35.3.3 OCILCRComparePosition()
- 35.3.4 OCILCRConvertPosition()
- 35.3.5 OCILCRFree()
- 35.3.6 OCILCRDDLInfoGet()
- 35.3.7 OCILCRHeaderGet()
- 35.3.8 OCILCRRowStmtGet()
- 35.3.9 OCILCRRowStmtWithBindVarGet()
- 35.3.10 OCILCRNew()
- 35.3.11 OCILCRRowColumnInfoGet()
- 35.3.12 OCILCRRowColumnInfoSet()
- 35.3.13 OCILCRDDLInfoSet()
- 35.3.14 OCILCRGetLCRIDVersion()
- 35.3.15 OCILCRHeaderSet()
- 35.3.16 OCILCRLobInfoGet()
- 35.3.17 OCILCRLobInfoSet()
- 35.3.18 OCILCRSCNsFromPosition()
- 35.3.19 OCILCRSCNToPosition()
- 35.3.20 OCILCRScnToPosition2()
- 35.3.21 OCILCRWhereClauseGet()
- 35.3.22 OCILCRWhereClauseWithBindVarGet()
- 35.3.23 OCIXStreamInAttach()
- 35.3.24 OCIXStreamInDetach()
- 35.3.25 OCIXStreamInLCRSend()
- 35.3.26 OCIXStreamInLCRCallbackSend()
- 35.3.27 OCIXStreamInProcessedLWMGet()
- 35.3.28 OCIXStreamInErrorGet()
- 35.3.29 OCIXStreamInFlush()
- 35.3.30 OCIXStreamInChunkSend()
- 35.3.31 OCIXStreamInCommit()
- 35.3.32 OCIXStreamInSessionSet()
- 35.3.33 OCIXStreamOutAttach()
- 35.3.34 OCIXStreamOutDetach()
- 35.3.35 OCIXStreamOutLCRReceive()
- 35.3.36 OCIXStreamOutLCRCallbackReceive()
- 35.3.37 OCIXStreamOutProcessedLWMSet()
- 35.3.38 OCIXStreamOutChunkReceive()
- 35.3.39 OCIXStreamOutGetNextChunk()
- 35.3.40 OCIXStreamOutSessionSet()
-
36
OCI SODA Functions
- 36.1 Introduction to OCI SODA Functions
-
36.2
OCI SODA Functions
- 36.2.1 OCISodaBulkInsert()
- 36.2.2 OCISodaBulkInsertAndGet()
- 36.2.3 OCISodaBulkInsertAndGetWithCtnt()
- 36.2.4 OCISodaBulkInsertWithCtnt()
- 36.2.5 OCISodaCollCreate()
- 36.2.6 OCISodaCollCreateWithMetadata()
- 36.2.7 OCISodaCollDrop()
- 36.2.8 OCISodaCollGetNext()
- 36.2.9 OCISodaCollList()
- 36.2.10 OCISodaCollOpen()
- 36.2.11 OCISodaDataGuideGet()
- 36.2.12 OCISodaDocCount()
- 36.2.13 OCISodaDocCountWithFilter()
- 36.2.14 OCISodaDocCreate()
- 36.2.15 OCISodaDocCreateWithKey()
- 36.2.16 OCISodaDocCreateWithKeyAndMType()
- 36.2.17 OCISodaDocGetNext()
- 36.2.18 OCISodaFind()
- 36.2.19 OCISodaFindOne()
- 36.2.20 OCISodaFindOneWithKey()
- 36.2.21 OCISodaIndexCreate()
- 36.2.22 OCISodaIndexDrop()
- 36.2.23 OCISodaInsert()
- 36.2.24 OCISodaInsertAndGet()
- 36.2.25 OCISodaInsertAndGetWithCtnt()
- 36.2.26 OCISodaInsertWithCtnt()
- 36.2.27 OCISodaRemove()
- 36.2.28 OCISodaRemoveOneWithKey()
- 36.2.29 OCISodaReplOne()
- 36.2.30 OCISodaReplOneAndGet()
- 36.2.31 OCISodaReplOneAndGetWithCtnt()
- 36.2.32 OCISodaReplOneAndGetWithKey()
- 36.2.33 OCISodaReplOneWithCtnt()
- 36.2.34 OCISodaReplOneWithKey()
- 36.2.35 OCISodaOperKeysSet()
-
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 SODA Document Handle Attributes
- A.16 SODA Collection Handle Attributes
- A.17 SODA Output Options Handle Attributes
- A.18 SODA Operation Options Handle Attributes
- A.19 LOB Descriptor and LOB Locator Attributes
- A.20 Complex Object Attributes
- A.21 Database Advanced Queuing Descriptor Attributes
- A.22 Subscription Handle Attributes
-
A.23
Direct Path Loading Handle Attributes
- A.23.1 Direct Path Context Handle (OCIDirPathCtx) Attributes
- A.23.2 Direct Path Function Context Handle (OCIDirPathFuncCtx) Attributes
- A.23.3 Direct Path Function Column Array Handle (OCIDirPathColArray) Attributes
- A.23.4 Direct Path Stream Handle (OCIDirPathStream) Attributes
- A.23.5 Direct Path Column Parameter Attributes
- A.24 Process Handle Attributes
- A.25 Event Handle Attributes
- B OCI Demonstration Programs
- C OCI Function Server Round-Trips
-
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 Features and 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