Table of Contents
- List of Examples
- List of Figures
- List of Tables
- Title and Copyright Information
- Preface
-
1
OCI: Introduction
- 1.1 Changes in This Release for Oracle Call Interface Developer's Guide
- 1.2 Overview of OCI
- 1.3 Building an OCI Application
- 1.4 Alternatives to OCI
- 1.5 SQL Statements
- 1.6 Procedural and Nonprocedural Elements
- 1.7 Object Support
- 1.8 Simple Oracle Document Access (SODA)
- 1.9 Encapsulated Interfaces
- 1.10 User Authentication and Password Management
- 1.11 Features to Improve Application Performance and Scalability
- 1.12 Oracle Database Advanced Queuing
- 1.13 XA Library Support
- 1.14 Annotations Support in OCI
- 1.15 Oracle Instant Client and Oracle Instant client Basic Light
-
2
Building and Configuring OCI Applications
- 2.1 Header File and Makefile Locations
- 2.2 Building an OCI Application on Linux and UNIX
- 2.3 Building an Application on Windows
- 2.4 Database Connection Strings
- 2.5 Client and Server Operating with Different Versions of Time Zone Files
- 2.6 OCI Support for Centralized Configuration Store
-
2.7
OCI Client-Side Deployment Parameters Using oraaccess.xml
- 2.7.1 About oraaccess.xml
- 2.7.2 About Client-Side Deployment Parameters Specified in oraaccess.xml
- 2.7.3 High Level Structure of oraaccess.xml
- 2.7.4 About Specifying Global Parameters in oraaccess.xml
- 2.7.5 About Specifying Defaults for Connection Parameters
- 2.7.6 Overriding Connection Parameters at the Connection-String Level
- 2.7.7 About OCI Session Pool Configuration in oraaccess.xml
- 2.7.8 File (oraaccess.xml) Properties
- 2.8 About Compatibility and Upgrading
- 2.9 Fault Diagnosability in OCI
-
3
OCI Programming Basics
- 3.1 Overview of OCI Program Programming
-
3.2
OCI Data Structures
-
3.2.1
Handles
- 3.2.1.1 About Allocating and Freeing Handles
- 3.2.1.2 Environment Handle
- 3.2.1.3 Error Handle
- 3.2.1.4 Service Context Handle and Associated Handles
- 3.2.1.5 Statement, Bind, and Define Handles
- 3.2.1.6 Describe Handle
- 3.2.1.7 Complex Object Retrieval Handle
- 3.2.1.8 Thread Handle
- 3.2.1.9 Subscription Handle
- 3.2.1.10 Direct Path Handles
- 3.2.1.11 Connection Pool Handle
- 3.2.1.12 Handle Attributes
- 3.2.2 OCI Descriptors
-
3.2.1
Handles
- 3.3 OCI Programming Steps
-
3.4
Additional Coding Guidelines
- 3.4.1 Operating System Considerations
- 3.4.2 Parameter Types
- 3.4.3 Inserting Nulls into a Column
- 3.4.4 Indicator Variables
- 3.4.5 About Canceling Calls
- 3.4.6 Positioned Updates and Deletes
- 3.4.7 Reserved Words
- 3.4.8 Polling Mode Operations in OCI
- 3.4.9 Nonblocking Mode in OCI
- 3.4.10 Setting Blocking Modes
- 3.4.11 Canceling a Nonblocking Call
- 3.5 About Using PL/SQL in an OCI Program
-
3.6
OCI Globalization Support
- 3.6.1 Client Character Set Control from OCI
- 3.6.2 Character Control and OCI Interfaces
- 3.6.3 Character-Length Semantics in OCI
- 3.6.4 Character Set Support in OCI
- 3.6.5 Controlling Language and Territory in OCI
- 3.6.6 Other OCI Globalization Support Functions
- 3.6.7 About Getting Locale Information in OCI
- 3.6.8 About OCI and the BOM (Byte Order Mark)
- 3.6.9 About Manipulating Strings in OCI
- 3.6.10 About Converting Character Sets in OCI
- 3.6.11 OCI Messaging Functions
- 3.6.12 lmsgen Utility
-
4
Data Types
- 4.1 Oracle Data Types
- 4.2 Internal Data Types
-
4.3
External Data Types
- 4.3.1 BOOLEAN
- 4.3.2 VARCHAR2
- 4.3.3 NUMBER
- 4.3.4 64-Bit Integer Host Data Type
- 4.3.5 INTEGER
- 4.3.6 FLOAT
- 4.3.7 STRING
- 4.3.8 VARNUM
- 4.3.9 LONG
- 4.3.10 VARCHAR
- 4.3.11 DATE
- 4.3.12 RAW
- 4.3.13 VARRAW
- 4.3.14 LONG RAW
- 4.3.15 UNSIGNED
- 4.3.16 LONG VARCHAR
- 4.3.17 LONG VARRAW
- 4.3.18 CHAR
- 4.3.19 CHARZ
- 4.3.20 Named Data Types: Object, VARRAY, Nested Table
- 4.3.21 REF
- 4.3.22 ROWID Descriptor
- 4.3.23 LOB Descriptor
- 4.3.24 JSON Descriptor
- 4.3.25 Datetime and Interval Data Type Descriptors
- 4.3.26 Native Float and Native Double
- 4.3.27 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 LOB Data
- 6.6 About Binding and Defining JSON Data
- 6.7 About Array Binds and Defines with JSON Data
- 6.8 About Binding and Defining Arrays of Structures in OCI
- 6.9 About Binding and Defining Multiple Buffers
-
6.10
DML with a RETURNING Clause in OCI
- 6.10.1 About Using DML with a RETURNING Clause to Combine Two SQL Statements
- 6.10.2 About Binding RETURNING...INTO Variables
- 6.10.3 OCI Error Handling
- 6.10.4 DML with RETURNING REF...INTO Clause in OCI
- 6.10.5 Additional Notes About OCI Callbacks
- 6.10.6 Array Interface for DML RETURNING Statements in OCI
-
6.11
Character Conversion in OCI Binding and Defining
- 6.11.1 About Choosing a Character Set
- 6.11.2 About Setting Client Character Sets in OCI
- 6.11.3 About Binding Variables in OCI
- 6.12 PL/SQL REF CURSORs and Nested Tables in OCI
- 6.13 Natively Describe and Bind All PL/SQL Types Including Package Types
-
6.14
Runtime Data Allocation and Piecewise Operations in OCI
- 6.14.1 Valid Data Types for Piecewise Operations
- 6.14.2 Types of Piecewise Operations
- 6.14.3 About Providing INSERT or UPDATE Data at Runtime
- 6.14.4 Piecewise Operations with PL/SQL
- 6.14.5 PL/SQL Indexed Table Binding Support
- 6.14.6 About Providing FETCH Information at Run Time
- 6.14.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 Describing with Boolean Data Type Columns
- 7.4.2 Retrieving Column Data Types for a Table
- 7.4.3 Describing the Stored Procedure
- 7.4.4 Retrieving Attributes of an Object Type
- 7.4.5 Retrieving the Collection Element's Data Type of a Named Collection Type
- 7.4.6 Describing with Character-Length Semantics
- 7.4.7 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
Session Pooling and Connection Pooling in OCI
- 10.1 Session Pooling in OCI
- 10.2 Database Resident Connection Pooling
- 10.3 About Using Oracle Connection Manager in Traffic Director Mode
- 10.4 Connection Pooling in OCI
- 10.5 When to Use Connection Pooling, Session Pooling, or Neither
-
11
High Availability in OCI
- 11.1 Runtime Connection Load Balancing
- 11.2 HA Event Notification
-
11.3
Transparent Application Failover in OCI
- 11.3.1 About Configuring Transparent Application Failover
- 11.3.2 Transparent Application Failover Callbacks in OCI
- 11.3.3 Transparent Application Failover Callback Structure and Parameters
- 11.3.4 Failover Callback Structure and Parameters
- 11.3.5 Failover Callback Registration
- 11.3.6 Failover Callback Example
- 11.3.7 Handling OCI_FO_ERROR
- 11.3.8 TAF Support for IAM Based Token Authentication in OCI
- 11.4 OCI and Transaction Guard
-
11.5
OCI and Application Continuity
- 11.5.1 About Added Support for Application Continuity
- 11.5.2 What Happens Following a Recoverable Error
- 11.5.3 Criteria for Successful Replay
- 11.5.4 What Factors Disable Application Continuity in OCI
- 11.5.5 Failed Replay
- 11.5.6 When Is Application Continuity Most Effective
- 11.5.7 When Application Continuity in OCI Can Fail Over
- 11.6 Support for Transparent Application Continuity
-
12
Notification Methods and Database Advanced
Queuing
- 12.1 About Continuous Query Notification
-
12.2
Publish-Subscribe Notification in OCI
-
12.2.1
Publish-Subscribe Registration Functions in OCI
- 12.2.1.1 Publish-Subscribe Register Directly to the Database
- 12.2.1.2 Open Registration for Publish-Subscribe
- 12.2.1.3 Using OCI to Open Register with LDAP
- 12.2.1.4 Setting QOS, Timeout Interval, Namespace, Client Address, and Port Number
- 12.2.1.5 OCI Functions Used to Manage Publish-Subscribe Notification
- 12.2.2 Notification Callback in OCI
- 12.2.3 Notification Procedure
- 12.2.4 Publish-Subscribe Direct Registration Example
- 12.2.5 Publish-Subscribe LDAP Registration Example
-
12.2.1
Publish-Subscribe Registration Functions in OCI
- 12.3 OCI and Database Advanced Queuing
-
13
User-Defined Callback Functions in OCI
-
13.1
About Registering User Callbacks in OCI
- 13.1.1 OCIUserCallbackRegister
- 13.1.2 User Callback Function
- 13.1.3 User Callback Control Flow
- 13.1.4 User Callback for OCIErrorGet()
- 13.1.5 Errors from Entry Callbacks
- 13.1.6 Dynamic Callback Registrations
- 13.1.7 About Loading Multiple Packages
- 13.1.8 Package Format
- 13.1.9 User Callback Chaining
- 13.1.10 About Accessing Other Data Sources Through OCI
- 13.1.11 Restrictions on Callback Functions
- 13.1.12 Example of OCI Callbacks
- 13.2 OCI Callbacks from External Procedures
-
13.1
About Registering User Callbacks in OCI
-
14
Performance Topics
- 14.1 Statement Caching in OCI
- 14.2 Implicit Fetching of ROWIDs
- 14.3 OCI Support for Implicit Results
- 14.4 Client Result Cache
-
14.5
Client Statement Cache Auto-Tuning
- 14.5.1 About Auto-Tuning Client Statement Cache
- 14.5.2 Benefit of Auto-Tuning Client Statement Cache
- 14.5.3 Client Statement Cache Auto-Tuning Parameters
- 14.5.4 Usage Examples of Client Statement Cache Auto Tuning
- 14.5.5 Enabling and Disabling OCI Client Auto-Tuning
- 14.5.6 Usage Guidelines for Auto-Tuning Client Statement Cache
- 15 Database Startup and Shutdown
-
16
Support for Pluggable Databases
- 16.1 Enhancements on OCI API Calls with Multitenant Container Databases (CDB) in General
- 16.2 OCI Enhancements for ALTER SESSION SET CONTAINER
- 16.3 Restrictions on OCI API Calls with Multitenant Container Databases (CDB) in General
- 16.4 Restrictions on OCI Calls with ALTER SESSION SET CONTAINER
- 16.5 Restrictions on OCI Calls with ALTER SESSION SWITCH CONTAINER SWITCH SERVICE
- 17 OCI Interface for Using Shards
-
18
OCI Object-Relational Programming
- 18.1 OCI Object Overview
- 18.2 About Working with Objects in OCI
-
18.3
About Developing an OCI Object Application
- 18.3.1 About Representing Objects in C Applications
- 18.3.2 About Initializing the Environment and the Object Cache
- 18.3.3 About Making Database Connections
- 18.3.4 Retrieving an Object Reference from the Server
- 18.3.5 Pinning an Object
- 18.3.6 Manipulating Object Attributes
- 18.3.7 About Marking Objects and Flushing Changes
- 18.3.8 Fetching Embedded Objects
- 18.3.9 Object Meta-Attributes
- 18.3.10 Complex Object Retrieval
- 18.3.11 COR Prefetching
- 18.3.12 OCI Versus SQL Access to Objects
- 18.3.13 Pin Count and Unpinning
- 18.3.14 NULL Indicator Structure
- 18.3.15 About Creating Objects
- 18.3.16 About Freeing and Copying Objects
- 18.3.17 Object Reference and Type Reference
- 18.3.18 Create Objects Based on Object Views and Object Tables with Primary-Key-Based OIDs
- 18.3.19 Error Handling in Object Applications
- 18.4 About Type Inheritance
- 18.5 About Type Evolution
-
19
Object-Relational Data Types in OCI
- 19.1 Overview of OCI Functions for Objects
- 19.2 About Mapping Oracle Data Types to C
- 19.3 About Manipulating C Data Types with OCI
- 19.4 Date (OCIDate)
- 19.5 Datetime and Interval (OCIDateTime, OCIInterval)
- 19.6 Number (OCINumber)
- 19.7 Fixed or Variable-Length String (OCIString)
- 19.8 Raw (OCIRaw)
- 19.9 Collections (OCITable, OCIArray, OCIColl, OCIIter)
- 19.10 About Multilevel Collection Types
- 19.11 REF (OCIRef)
- 19.12 Object Type Information Storage and Access
- 19.13 AnyType, AnyData, and AnyDataSet Interfaces
- 19.14 About Binding Named Data Types
- 19.15 About Defining Named Data Types
- 19.16 About Binding and Defining Oracle C Data Types
- 19.17 SQLT_NTY Bind and Define Examples
-
20
Direct Path Load Interface
-
20.1
Direct Path Loading Overview
- 20.1.1 Data Types Supported for Direct Path Loading
- 20.1.2 Direct Path Handles
- 20.1.3 About Direct Path Interface Functions
- 20.1.4 Limitations and Restrictions of the Direct Path Load Interface
- 20.1.5 Direct Path Load Examples for Scalar Columns
- 20.1.6 About Using a Date Cache in Direct Path Loading of Dates in OCI
- 20.1.7 About Validating Format for Oracle NUMBER and DATE Data
-
20.2
Direct Path Loading of Object Types
- 20.2.1 Direct Path Loading of Nested Tables
- 20.2.2 Direct Path Loading of Column Objects
- 20.2.3 Direct Path Loading of SQL String Columns
- 20.2.4 Direct Path Loading of REF Columns
- 20.2.5 Direct Path Loading of NOT FINAL Object and REF Columns
- 20.2.6 Direct Path Loading of Object Tables
- 20.2.7 Direct Path Loading a NOT FINAL Object Table
- 20.3 Direct Path Loading in Pieces
- 20.4 Direct Path Context Handles and Attributes for Object Types
-
20.1
Direct Path Loading Overview
-
21
Object Advanced Topics in OCI
-
21.1
Object Cache and Memory Management
- 21.1.1 Cache Consistency and Coherency
- 21.1.2 Object Cache Parameters
- 21.1.3 Object Cache Operations
- 21.1.4 About Loading and Removing Object Copies
- 21.1.5 About Making Changes to Object Copies
- 21.1.6 About Synchronizing Object Copies with the Server
- 21.1.7 Object Locking
- 21.1.8 Commit and Rollback in Object Applications
- 21.1.9 Object Duration
- 21.1.10 Memory Layout of an Instance
- 21.2 Object Navigation
- 21.3 OCI Navigational Functions
- 21.4 Type Evolution and the Object Cache
-
21.1
Object Cache and Memory Management
- 22 OCI Pipelining
-
23
OCI Support for JSON
- 23.1 JSON Data Type Support
- 23.2 Compatibility with Client Libraries Prior to Release 21c
- 23.3 Mutable and Immutable DOM
- 23.4 Calling Sequence for Writing and Reading JSON Data
- 23.5 JSON DOM Operations
- 23.6 Multithreading Using JSON Descriptor
- 23.7 Handling Character Sets
- 23.8 OCI Interface for Schema Validation
- 23.9 Attribute to Check if Column has JSON Schema Constraint
-
24
OCI Support for XML
- 24.1 XML Context
- 24.2 XML Data on the Server
- 24.3 Using OCI XML DB Functions
-
24.4
OCI Client Access to Binary XML
- 24.4.1 Accessing XML Data from an OCI Application
- 24.4.2 Repository Context
- 24.4.3 Create Repository Context from a Dedicated OCI Connection
- 24.4.4 Create Repository Context from a Connection Pool
- 24.4.5 About Associating Repository Context with a Data Connection
- 24.4.6 About Setting XMLType Encoding Format Preference
- 24.4.7 Example of Using a Connection Pool
-
25
Using the Object Type Translator with OCI
- 25.1 What Is the Object Type Translator?
- 25.2 OTT Command Line
- 25.3 Intype File
- 25.4 OTT Data Type Mappings
- 25.5 Outtype File
- 25.6 About Using OTT with OCI Applications
-
25.7
OTT Reference
- 25.7.1 OTT Command-Line Syntax
- 25.7.2 OTT Parameters
- 25.7.3 Where OTT Parameters Can Appear
- 25.7.4 Structure of the Intype File
- 25.7.5 Nested Included File Generation
- 25.7.6 SCHEMA_NAMES Usage
- 25.7.7 Default Name Mapping
- 25.7.8 OTT Restriction on File Name Comparison
- 25.7.9 OTT Command on Microsoft Windows
-
26
Oracle Database Access C API
- 26.1 Introduction to the Relational Functions
- 26.2 OCI Pipelining Functions
-
26.3
Connect, Authorize, and Initialize Functions
- 26.3.1 OCIAppCtxClearAll()
- 26.3.2 OCIAppCtxSet()
- 26.3.3 OCIConnectionPoolCreate()
- 26.3.4 OCIConnectionPoolDestroy()
- 26.3.5 OCIDBShutdown()
- 26.3.6 OCIDBStartup()
- 26.3.7 OCIEnvCreate()
- 26.3.8 OCIEnvNlsCreate()
- 26.3.9 OCIInputValidate()
- 26.3.10 OCILogoff()
- 26.3.11 OCILogon()
- 26.3.12 OCILogon2()
- 26.3.13 OCIDdlEventRegister()
- 26.3.14 OCIDdlEventUnregister()
- 26.3.15 OCIRequestBegin()
- 26.3.16 OCIRequestEnd()
- 26.3.17 OCIRequestDisableReplay()
- 26.3.18 OCIServerAttach()
- 26.3.19 OCIServerDetach()
- 26.3.20 OCISessionBegin()
- 26.3.21 OCISessionEnd()
- 26.3.22 OCISessionGet()
- 26.3.23 OCISessionPoolCreate()
- 26.3.24 OCISessionPoolDestroy()
- 26.3.25 OCISessionRelease()
- 26.3.26 OCITerminate()
- 26.4 Handle and Descriptor Functions
-
26.5
Bind, Define, and Describe Functions
- 26.5.1 OCIBindArrayOfStruct()
- 26.5.2 OCIBindByName()
- 26.5.3 OCIBindByName2()
- 26.5.4 OCIBindByPos()
- 26.5.5 OCIBindByPos2()
- 26.5.6 OCIBindDynamic()
- 26.5.7 OCIBindObject()
- 26.5.8 OCIDefineArrayOfStruct()
- 26.5.9 OCIDefineByPos()
- 26.5.10 OCIDefineByPos2()
- 26.5.11 OCIDefineDynamic()
- 26.5.12 OCIDefineObject()
- 26.5.13 OCIDescribeAny()
- 26.5.14 OCIStmtGetBindInfo()
- 26.5.15 OCIServerDataLengthGet()
-
27
More Oracle Database Access C API
- 27.1 Introduction to the Relational Functions
- 27.2 Statement Functions
-
27.3
LOB Functions
- 27.3.1 OCIDurationBegin()
- 27.3.2 OCIDurationEnd()
- 27.3.3 OCILobAppend()
- 27.3.4 OCILobArrayRead()
- 27.3.5 OCILobArrayWrite()
- 27.3.6 OCILobAssign()
- 27.3.7 OCILobCharSetForm()
- 27.3.8 OCILobCharSetId()
- 27.3.9 OCILobClose()
- 27.3.10 OCILobCopy2()
- 27.3.11 OCILobCreateTemporary()
- 27.3.12 OCILobErase2()
- 27.3.13 OCILobFileClose()
- 27.3.14 OCILobFileCloseAll()
- 27.3.15 OCILobFileExists()
- 27.3.16 OCILobFileGetName()
- 27.3.17 OCILobFileIsOpen()
- 27.3.18 OCILobFileOpen()
- 27.3.19 OCILobFileSetName()
- 27.3.20 OCILobFreeTemporary()
- 27.3.21 OCILobGetChunkSize()
- 27.3.22 OCILobGetContentType()
- 27.3.23 OCILobGetLength2()
- 27.3.24 OCILobGetOptions()
- 27.3.25 OCILobGetStorageLimit()
- 27.3.26 OCILobIsEqual()
- 27.3.27 OCILobIsOpen()
- 27.3.28 OCILobIsTemporary()
- 27.3.29 OCILobLoadFromFile2()
- 27.3.30 OCILobLocatorAssign()
- 27.3.31 OCILobLocatorIsInit()
- 27.3.32 OCILobOpen()
- 27.3.33 OCILobRead2()
- 27.3.34 OCILobSetContentType()
- 27.3.35 OCILobSetOptions()
- 27.3.36 OCILobTrim2()
- 27.3.37 OCILobWrite2()
- 27.3.38 OCILobWriteAppend2()
- 27.4 Database Advanced Queuing and Publish-Subscribe Functions
-
27.5
Direct Path Loading Functions
- 27.5.1 OCIDirPathAbort()
- 27.5.2 OCIDirPathColArrayEntryGet()
- 27.5.3 OCIDirPathColArrayEntrySet()
- 27.5.4 OCIDirPathColArrayReset()
- 27.5.5 OCIDirPathColArrayRowGet()
- 27.5.6 OCIDirPathColArrayToStream()
- 27.5.7 OCIDirPathDataSave()
- 27.5.8 OCIDirPathFinish()
- 27.5.9 OCIDirPathFlushRow()
- 27.5.10 OCIDirPathLoadStream()
- 27.5.11 OCIDirPathPrepare()
- 27.5.12 OCIDirPathStreamReset()
-
27.6
Thread Management Functions
- 27.6.1 OCIThreadClose()
- 27.6.2 OCIThreadCreate()
- 27.6.3 OCIThreadHandleGet()
- 27.6.4 OCIThreadHndDestroy()
- 27.6.5 OCIThreadHndInit()
- 27.6.6 OCIThreadIdDestroy()
- 27.6.7 OCIThreadIdGet()
- 27.6.8 OCIThreadIdInit()
- 27.6.9 OCIThreadIdNull()
- 27.6.10 OCIThreadIdSame()
- 27.6.11 OCIThreadIdSet()
- 27.6.12 OCIThreadIdSetNull()
- 27.6.13 OCIThreadInit()
- 27.6.14 OCIThreadIsMulti()
- 27.6.15 OCIThreadJoin()
- 27.6.16 OCIThreadKeyDestroy()
- 27.6.17 OCIThreadKeyGet()
- 27.6.18 OCIThreadKeyInit()
- 27.6.19 OCIThreadKeySet()
- 27.6.20 OCIThreadMutexAcquire()
- 27.6.21 OCIThreadMutexDestroy()
- 27.6.22 OCIThreadMutexInit()
- 27.6.23 OCIThreadMutexRelease()
- 27.6.24 OCIThreadProcessInit()
- 27.6.25 OCIThreadTerm()
- 27.7 Transaction Functions
- 27.8 Sharding Functions
-
27.9
Miscellaneous Functions
- 27.9.1 OCITraceEventSet()
- 27.9.2 OCITraceEventReset()
- 27.9.3 OCITraceWriteMessage()
- 27.9.4 OCIBreak()
- 27.9.5 OCIClientVersion()
- 27.9.6 OCIErrorGet()
- 27.9.7 OCILdaToSvcCtx()
- 27.9.8 OCIPasswordChange()
- 27.9.9 OCIPing()
- 27.9.10 OCIReset()
- 27.9.11 OCIRowidToChar()
- 27.9.12 OCIServerRelease()
- 27.9.13 OCIServerRelease2()
- 27.9.14 OCIServerVersion()
- 27.9.15 OCISvcCtxToLda()
- 27.9.16 OCIUserCallbackGet()
- 27.9.17 OCIUserCallbackRegister()
-
28
OCI Navigational and Type Functions
- 28.1 Introduction to the Navigational and Type Functions
- 28.2 OCI Flush or Refresh Functions
- 28.3 OCI Mark or Unmark Object and Cache Functions
- 28.4 OCI Get Object Status Functions
- 28.5 OCI Miscellaneous Object Functions
- 28.6 OCI Pin, Unpin, and Free Functions
- 28.7 OCI Type Information Accessor Functions
-
29
OCI Data Type Mapping and Manipulation Functions
- 29.1 Introduction to Data Type Mapping and Manipulation Functions
-
29.2
OCI Collection and Iterator Functions
- 29.2.1 OCICollAppend()
- 29.2.2 OCICollAssign()
- 29.2.3 OCICollAssignElem()
- 29.2.4 OCICollKeyAssignElem()
- 29.2.5 OCICollGetElem()
- 29.2.6 OCICollKeyGetElem()
- 29.2.7 OCICollGetElemArray()
- 29.2.8 OCICollIsLocator()
- 29.2.9 OCICollMax()
- 29.2.10 OCICollSize()
- 29.2.11 OCICollTrim()
- 29.2.12 OCIIterCreate()
- 29.2.13 OCIIterDelete()
- 29.2.14 OCIIterGetCurrent()
- 29.2.15 OCIIterKeyGetCurrent()
- 29.2.16 OCIIterInit()
- 29.2.17 OCIIterNext()
- 29.2.18 OCIIterPrev()
-
29.3
OCI Date, Datetime, and Interval Functions
- 29.3.1 OCIDateAddDays()
- 29.3.2 OCIDateAddMonths()
- 29.3.3 OCIDateAssign()
- 29.3.4 OCIDateAddDaysSeconds()
- 29.3.5 OCIDateCheck()
- 29.3.6 OCIDateCompare()
- 29.3.7 OCIDateDaysBetween()
- 29.3.8 OCIDateDaysSecondsBetween()
- 29.3.9 OCIDateFromText()
- 29.3.10 OCIDateGetDate()
- 29.3.11 OCIDateGetTime()
- 29.3.12 OCIDateLastDay()
- 29.3.13 OCIDateNextDay()
- 29.3.14 OCIDateSetDate()
- 29.3.15 OCIDateSetTime()
- 29.3.16 OCIDateSysDate()
- 29.3.17 OCIDateTimeAssign()
- 29.3.18 OCIDateTimeCheck()
- 29.3.19 OCIDateTimeCompare()
- 29.3.20 OCIDateTimeConstruct()
- 29.3.21 OCIDateTimeConvert()
- 29.3.22 OCIDateTimeFromArray()
- 29.3.23 OCIDateTimeFromText()
- 29.3.24 OCIDateTimeGetDate()
- 29.3.25 OCIDateTimeGetTime()
- 29.3.26 OCIDateTimeGetTimeZoneName()
- 29.3.27 OCIDateTimeGetTimeZoneOffset()
- 29.3.28 OCIDateTimeIntervalAdd()
- 29.3.29 OCIDateTimeIntervalSub()
- 29.3.30 OCIDateTimeSubtract()
- 29.3.31 OCIDateTimeSysTimeStamp()
- 29.3.32 OCIDateTimeToArray()
- 29.3.33 OCIDateTimeToText()
- 29.3.34 OCIDateToText()
- 29.3.35 OCIDateZoneToZone()
- 29.3.36 OCIIntervalAdd()
- 29.3.37 OCIIntervalAssign()
- 29.3.38 OCIIntervalCheck()
- 29.3.39 OCIIntervalCompare()
- 29.3.40 OCIIntervalDivide()
- 29.3.41 OCIIntervalFromNumber()
- 29.3.42 OCIIntervalFromText()
- 29.3.43 OCIIntervalFromTZ()
- 29.3.44 OCIIntervalGetDaySecond()
- 29.3.45 OCIIntervalGetYearMonth()
- 29.3.46 OCIIntervalMultiply()
- 29.3.47 OCIIntervalSetDaySecond()
- 29.3.48 OCIIntervalSetYearMonth()
- 29.3.49 OCIIntervalSubtract()
- 29.3.50 OCIIntervalToNumber()
- 29.3.51 OCIIntervalToText()
-
29.4
OCI NUMBER Functions
- 29.4.1 OCINumberAbs()
- 29.4.2 OCINumberAdd()
- 29.4.3 OCINumberArcCos()
- 29.4.4 OCINumberArcSin()
- 29.4.5 OCINumberArcTan()
- 29.4.6 OCINumberArcTan2()
- 29.4.7 OCINumberAssign()
- 29.4.8 OCINumberCeil()
- 29.4.9 OCINumberCmp()
- 29.4.10 OCINumberCos()
- 29.4.11 OCINumberDec()
- 29.4.12 OCINumberDiv()
- 29.4.13 OCINumberExp()
- 29.4.14 OCINumberFloor()
- 29.4.15 OCINumberFromInt()
- 29.4.16 OCINumberFromReal()
- 29.4.17 OCINumberFromText()
- 29.4.18 OCINumberHypCos()
- 29.4.19 OCINumberHypSin()
- 29.4.20 OCINumberHypTan()
- 29.4.21 OCINumberInc()
- 29.4.22 OCINumberIntPower()
- 29.4.23 OCINumberIsInt()
- 29.4.24 OCINumberIsZero()
- 29.4.25 OCINumberLn()
- 29.4.26 OCINumberLog()
- 29.4.27 OCINumberMod()
- 29.4.28 OCINumberMul()
- 29.4.29 OCINumberNeg()
- 29.4.30 OCINumberPower()
- 29.4.31 OCINumberPrec()
- 29.4.32 OCINumberRound()
- 29.4.33 OCINumberSetPi()
- 29.4.34 OCINumberSetZero()
- 29.4.35 OCINumberShift()
- 29.4.36 OCINumberSign()
- 29.4.37 OCINumberSin()
- 29.4.38 OCINumberSqrt()
- 29.4.39 OCINumberSub()
- 29.4.40 OCINumberTan()
- 29.4.41 OCINumberToInt()
- 29.4.42 OCINumberToReal()
- 29.4.43 OCINumberToRealArray()
- 29.4.44 OCINumberToText()
- 29.4.45 OCINumberTrunc()
- 29.5 OCI Raw Functions
- 29.6 OCI REF Functions
- 29.7 OCI String Functions
- 29.8 OCI Table Functions
-
30
OCI Cartridge Functions
- 30.1 Introduction to External Procedure and Cartridge Services Functions
- 30.2 Cartridge Services — OCI External Procedures
- 30.3 Cartridge Services — Memory Services
- 30.4 Cartridge Services — Maintaining Context
-
30.5
Cartridge Services — Parameter Manager Interface
- 30.5.1 OCIExtractFromFile()
- 30.5.2 OCIExtractFromList()
- 30.5.3 OCIExtractFromStr()
- 30.5.4 OCIExtractInit()
- 30.5.5 OCIExtractReset()
- 30.5.6 OCIExtractSetKey()
- 30.5.7 OCIExtractSetNumKeys()
- 30.5.8 OCIExtractTerm()
- 30.5.9 OCIExtractToBool()
- 30.5.10 OCIExtractToInt()
- 30.5.11 OCIExtractToList()
- 30.5.12 OCIExtractToOCINum()
- 30.5.13 OCIExtractToStr()
- 30.6 Cartridge Services — File I/O Interface
- 30.7 Cartridge Services — String Formatting Interface
-
31
OCI Any Type and Data Functions
- 31.1 Introduction to Any Type and Data Interfaces
- 31.2 OCI Type Interface Functions
-
31.3
OCI Any Data Interface Functions
- 31.3.1 OCIAnyDataAccess()
- 31.3.2 OCIAnyDataAttrGet()
- 31.3.3 OCIAnyDataAttrSet()
- 31.3.4 OCIAnyDataBeginCreate()
- 31.3.5 OCIAnyDataCollAddElem()
- 31.3.6 OCIAnyDataCollGetElem()
- 31.3.7 OCIAnyDataConvert()
- 31.3.8 OCIAnyDataDestroy()
- 31.3.9 OCIAnyDataEndCreate()
- 31.3.10 OCIAnyDataGetCurrAttrNum()
- 31.3.11 OCIAnyDataGetType()
- 31.3.12 OCIAnyDataIsNull()
- 31.3.13 OCIAnyDataTypeCodeToSqlt()
- 31.4 OCI Any Data Set Interface Functions
-
32
OCI Globalization Support Functions
- 32.1 Introduction to Globalization Support in OCI
- 32.2 OCI Locale Functions
- 32.3 OCI Locale-Mapping Function
-
32.4
OCI String Manipulation Functions
- 32.4.1 OCIMultiByteInSizeToWideChar()
- 32.4.2 OCIMultiByteStrCaseConversion()
- 32.4.3 OCIMultiByteStrcat()
- 32.4.4 OCIMultiByteStrcmp()
- 32.4.5 OCIMultiByteStrcpy()
- 32.4.6 OCIMultiByteStrlen()
- 32.4.7 OCIMultiByteStrncat()
- 32.4.8 OCIMultiByteStrncmp()
- 32.4.9 OCIMultiByteStrncpy()
- 32.4.10 OCIMultiByteStrnDisplayLength()
- 32.4.11 OCIMultiByteToWideChar()
- 32.4.12 OCIWideCharInSizeToMultiByte()
- 32.4.13 OCIWideCharMultiByteLength()
- 32.4.14 OCIWideCharStrCaseConversion()
- 32.4.15 OCIWideCharStrcat()
- 32.4.16 OCIWideCharStrchr()
- 32.4.17 OCIWideCharStrcmp()
- 32.4.18 OCIWideCharStrcpy()
- 32.4.19 OCIWideCharStrlen()
- 32.4.20 OCIWideCharStrncat()
- 32.4.21 OCIWideCharStrncmp()
- 32.4.22 OCIWideCharStrncpy()
- 32.4.23 OCIWideCharStrrchr()
- 32.4.24 OCIWideCharToLower()
- 32.4.25 OCIWideCharToMultiByte()
- 32.4.26 OCIWideCharToUpper()
-
32.5
OCI Character Classification Functions
- 32.5.1 OCIWideCharIsAlnum()
- 32.5.2 OCIWideCharIsAlpha()
- 32.5.3 OCIWideCharIsCntrl()
- 32.5.4 OCIWideCharIsDigit()
- 32.5.5 OCIWideCharIsGraph()
- 32.5.6 OCIWideCharIsLower()
- 32.5.7 OCIWideCharIsPrint()
- 32.5.8 OCIWideCharIsPunct()
- 32.5.9 OCIWideCharIsSingleByte()
- 32.5.10 OCIWideCharIsSpace()
- 32.5.11 OCIWideCharIsUpper()
- 32.5.12 OCIWideCharIsXdigit()
- 32.6 OCI Character Set Conversion Functions
- 32.7 OCI Messaging Functions
- 33 OCI XML DB Functions
- 34 Oracle ODBC Driver
- 35 Introduction to the OCI Interface for XStream
-
36
OCI XStream Functions
- 36.1 About Using the XStream Interface
- 36.2 Introduction to XStream Functions
-
36.3
OCI XStream Functions
- 36.3.1 OCILCRAttributesGet()
- 36.3.2 OCILCRAttributesSet()
- 36.3.3 OCILCRComparePosition()
- 36.3.4 OCILCRConvertPosition()
- 36.3.5 OCILCRFree()
- 36.3.6 OCILCRDDLInfoGet()
- 36.3.7 OCILCRHeaderGet()
- 36.3.8 OCILCRRowStmtGet()
- 36.3.9 OCILCRRowStmtWithBindVarGet()
- 36.3.10 OCILCRNew()
- 36.3.11 OCILCRRowColumnInfoGet()
- 36.3.12 OCILCRRowColumnInfoSet()
- 36.3.13 OCILCRDDLInfoSet()
- 36.3.14 OCILCRGetLCRIDVersion()
- 36.3.15 OCILCRHeaderSet()
- 36.3.16 OCILCRLobInfoGet()
- 36.3.17 OCILCRLobInfoSet()
- 36.3.18 OCILCRSCNsFromPosition()
- 36.3.19 OCILCRSCNToPosition()
- 36.3.20 OCILCRScnToPosition2()
- 36.3.21 OCILCRWhereClauseGet()
- 36.3.22 OCILCRWhereClauseWithBindVarGet()
- 36.3.23 OCIXStreamInAttach()
- 36.3.24 OCIXStreamInDetach()
- 36.3.25 OCIXStreamInLCRSend()
- 36.3.26 OCIXStreamInLCRCallbackSend()
- 36.3.27 OCIXStreamInProcessedLWMGet()
- 36.3.28 OCIXStreamInErrorGet()
- 36.3.29 OCIXStreamInFlush()
- 36.3.30 OCIXStreamInChunkSend()
- 36.3.31 OCIXStreamInCommit()
- 36.3.32 OCIXStreamInSessionSet()
- 36.3.33 OCIXStreamOutAttach()
- 36.3.34 OCIXStreamOutDetach()
- 36.3.35 OCIXStreamOutLCRReceive()
- 36.3.36 OCIXStreamOutLCRCallbackReceive()
- 36.3.37 OCIXStreamOutProcessedLWMSet()
- 36.3.38 OCIXStreamOutChunkReceive()
- 36.3.39 OCIXStreamOutGetNextChunk()
- 36.3.40 OCIXStreamOutSessionSet()
- 37 OCI Json Descriptor Functions
-
38
Support for Vector Data Type in OCI
- 38.1 OCIVector Descriptor
- 38.2 Attributes of OCIVector Descriptor
- 38.3 External VECTOR Data Type and OCI
- 38.4 Bind or Define Support for VECTOR SQL Data Type
- 38.5 OCI Vector Support Functions
- 38.6 Binding and Defining OCIVector *
- 38.7 OCIDescribeAny Enhancements
- 38.8 Example Code Snippets for Vectors
-
39
OCI SODA Functions
- 39.1 Introduction to OCI SODA Functions
-
39.2
OCI SODA Functions
- 39.2.1 OCISodaBulkInsert()
- 39.2.2 OCISodaBulkInsertAndGet()
- 39.2.3 OCISodaBulkInsertAndGetWithOpts()
- 39.2.4 OCISodaBulkInsertAndGetWithCtnt()
- 39.2.5 OCISodaBulkInsertWithCtnt()
- 39.2.6 OCISodaCollCreate()
- 39.2.7 OCISodaCollCreateWithMetadata()
- 39.2.8 OCISodaCollDrop()
- 39.2.9 OCISodaCollGetNext()
- 39.2.10 OCISodaCollList()
- 39.2.11 OCISodaCollOpen()
- 39.2.12 OCISodaDataGuideGet()
- 39.2.13 OCISodaDataGuideGetWithOpts ()
- 39.2.14 OCISodaAsOfTimestampGet ()
- 39.2.15 OCISodaAsOfScnGet ()
- 39.2.16 OCISodaDocCount()
- 39.2.17 OCISodaDocCountWithFilter()
- 39.2.18 OCISodaDocCreate()
- 39.2.19 OCISodaDocCreateWithKey()
- 39.2.20 OCISodaDocCreateWithKeyAndMType()
- 39.2.21 OCISodaDocGetNext()
- 39.2.22 OCISodaFind()
- 39.2.23 OCISodaFindOne()
- 39.2.24 OCISodaFindOneWithKey()
- 39.2.25 OCISodaIndexCreate()
- 39.2.26 OCISodaIndexGet()
- 39.2.27 OCISodaIndexList()
- 39.2.28 OCISodaIndexDrop()
- 39.2.29 OCISodaInsert()
- 39.2.30 OCISodaInsertAndGet()
- 39.2.31 OCISodaInsertAndGetWithOpts ()
- 39.2.32 OCISodaInsertAndGetWithCtnt()
- 39.2.33 OCISodaInsertWithCtnt()
- 39.2.34 OCISodaRemove()
- 39.2.35 OCISodaRemoveOneWithKey()
- 39.2.36 OCISodaReplOne()
- 39.2.37 OCISodaReplOneAndGet()
- 39.2.38 OCISodaReplOneAndGetWithCtnt()
- 39.2.39 OCISodaReplOneAndGetWithKey()
- 39.2.40 OCISodaReplOneWithCtnt()
- 39.2.41 OCISodaReplOneWithKey()
- 39.2.42 OCISodaSave()
- 39.2.43 OCISodaSaveAndGet()
- 39.2.44 OCISodaSaveAndGetWithOpts()
- 39.2.45 OCISodaSaveWithCtnt()
- 39.2.46 OCISodaSaveAndGetWithCtnt()
- 39.2.47 OCISodaCollTruncate()
- 39.2.48 OCISodaOperKeysSet()
-
A
Handle and Descriptor Attributes
- A.1 Conventions
- A.2 DDL Event Descriptor Attributes
- A.3 Environment Handle Attributes
- A.4 Error Handle Attributes
- A.5 Service Context Handle Attributes
- A.6 Server Handle Attributes
- A.7 Administration Handle Attributes
- A.8 Connection Pool Handle Attributes
- A.9 Transaction Handle Attributes
- A.10 Statement Handle Attributes
- A.11 Bind Handle Attributes
- A.12 Define Handle Attributes
- A.13 Describe Handle Attributes
- A.14 Parameter Descriptor Attributes
- A.15 Shard Instance Descriptor Attributes
- A.16 SODA Document Handle Attributes
- A.17 SODA Collection Handle Attributes
- A.18 SODA Output Options Handle Attributes
- A.19 SODA Operation Options Handle Attributes
- A.20 LOB Descriptor and LOB Locator Attributes
- A.21 JSON Descriptor Attributes
- A.22 Complex Object Attributes
- A.23 Database Advanced Queuing Descriptor Attributes
- A.24 Subscription Handle Attributes
-
A.25
Direct Path Loading Handle Attributes
- A.25.1 Direct Path Context Handle (OCIDirPathCtx) Attributes
- A.25.2 Direct Path Function Context Handle (OCIDirPathFuncCtx) Attributes
- A.25.3 Direct Path Function Column Array Handle (OCIDirPathColArray) Attributes
- A.25.4 Direct Path Stream Handle (OCIDirPathStream) Attributes
- A.25.5 Direct Path Column Parameter Attributes
- A.26 Process Handle Attributes
- A.27 Event Handle Attributes
- B OCI Demonstration Programs
-
C
OCI Function Server Round-Trips
- C.1 Relational Function Round-Trips
- C.2 LOB Function Round-Trips
- C.3 JSON 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 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