Skip to main content
Oracle Help Center

Sign Out

Sign In

  • Table of Contents
  • Search
  • Print
  • Download
  1. Database
  2. Oracle
  3. Oracle Database
  4. Release 19

Programmer's Guide

  • Table of Contents
  • Search
  • Print
  • Download

Table of Contents

Expand AllCollapse All
  • List of Examples
  • List of Figures
  • List of Tables
  • Title and Copyright Information
  • Preface
    • Audience
    • Documentation Accessibility
    • Related Documents
    • Conventions
  • Changes in This Release for Oracle Call Interface Programmer's Guide
    • Changes in Oracle Database Release 19c Version 19.1
      • New Features
      • Other Changes
    • Changes in Oracle Database Release 18c Version 18.1
      • New Features
      • Deprecated Features
  • 1 OCI: Introduction
    • 1.1 Overview of OCI
    • 1.2 Building an OCI Application
    • 1.3 Alternatives to OCI
    • 1.4 SQL Statements
      • 1.4.1 Data Definition Language
      • 1.4.2 Control Statements
      • 1.4.3 Data Manipulation Language
      • 1.4.4 Queries
      • 1.4.5 PL/SQL
      • 1.4.6 Embedded SQL
      • 1.4.7 Special OCI Terms for SQL
    • 1.5 Procedural and Nonprocedural Elements
    • 1.6 Object Support
      • 1.6.1 Client-Side Object Cache
      • 1.6.2 Associative and Navigational Interfaces
      • 1.6.3 OCI Runtime Environment for Objects
      • 1.6.4 Type Management: Mapping and Manipulation Functions
      • 1.6.5 Object Type Translator
    • 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.6.1 Globalization Settings
      • 2.6.2 Libraries for Oracle Instant Client Light
      • 2.6.3 Installing 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.2.1 Oracle Directory Structure
      • 3.2.2 Demonstration OCI Programs
    • 3.3 Building an Application on Windows
    • 3.4 Database Connection Strings
      • 3.4.1 Examples of Oracle Database Connection String Connect Identifiers
    • 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.7.1 Oracle Client and Server Cross Version Compatibility
      • 3.7.2 Version Compatibility of Statically Linked and Dynamically Linked Applications
      • 3.7.3 About Upgrading of Existing OCI Release 7 Applications
      • 3.7.4 Obsolete OCI Routines
      • 3.7.5 OCI Routines Not Supported
    • 3.8 Fault Diagnosability in OCI
      • 3.8.1 About Fault Diagnosability in OCI
      • 3.8.2 ADR Base Location
      • 3.8.3 Using ADRCI
      • 3.8.4 Controlling ADR Creation and Disabling Fault Diagnosability Using sqlnet.ora
  • 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.13.1 Snapshot Descriptor
          • 4.2.1.13.2 LOB and BFILE Locators
          • 4.2.1.13.3 Parameter Descriptor
          • 4.2.1.13.4 ROWID Descriptor
          • 4.2.1.13.5 Date, Datetime, and Interval Descriptors
          • 4.2.1.13.6 Complex Object Descriptor
          • 4.2.1.13.7 Advanced Queuing Descriptors
          • 4.2.1.13.8 User Memory Allocation
    • 4.3 OCI Programming Steps
      • 4.3.1 OCI Environment Initialization
        • 4.3.1.1 About Creating the OCI Environment
        • 4.3.1.2 About Allocating Handles and Descriptors
        • 4.3.1.3 Application Initialization, Connection, and Session Creation
          • 4.3.1.3.1 Single User, Single Connection
          • 4.3.1.3.2 Client Access Through a Proxy
          • 4.3.1.3.3 Nonproxy Multiple Sessions or Connections
      • 4.3.2 About Processing SQL Statements in OCI
      • 4.3.3 Commit or Roll Back Operations
      • 4.3.4 About Terminating the Application
      • 4.3.5 Error Handling in OCI
        • 4.3.5.1 Return and Error Codes for Data
        • 4.3.5.2 Functions Returning Other Values
    • 4.4 Additional Coding Guidelines
      • 4.4.1 Operating System Considerations
      • 4.4.2 Parameter Types
        • 4.4.2.1 Address Parameters
        • 4.4.2.2 Integer Parameters
        • 4.4.2.3 Character String Parameters
      • 4.4.3 Inserting Nulls into a Column
      • 4.4.4 Indicator Variables
        • 4.4.4.1 Input
        • 4.4.4.2 Output
        • 4.4.4.3 Indicator Variables for Named Data Types and REFs
      • 4.4.5 About Canceling Calls
      • 4.4.6 Positioned Updates and Deletes
      • 4.4.7 Reserved Words
        • 4.4.7.1 Oracle Reserved Namespaces
      • 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
        • 4.6.12.1 Guidelines for Text Message Files
        • 4.6.12.2 An Example of Creating a Binary Message File from a Text Message File
  • 5 Data Types
    • 5.1 Oracle Data Types
      • 5.1.1 About Using External Data Type Codes
    • 5.2 Internal Data Types
      • 5.2.1 LONG, RAW, LONG RAW, VARCHAR2
      • 5.2.2 Character Strings and Byte Arrays
      • 5.2.3 UROWID
      • 5.2.4 BINARY_FLOAT and BINARY_DOUBLE
    • 5.3 External Data Types
      • 5.3.1 VARCHAR2
        • 5.3.1.1 Input
        • 5.3.1.2 Output
      • 5.3.2 NUMBER
      • 5.3.3 64-Bit Integer Host Data Type
        • 5.3.3.1 OCI Bind and Define for 64-Bit Integers
        • 5.3.3.2 Support for OUT Bind DML Returning Statements
      • 5.3.4 INTEGER
      • 5.3.5 FLOAT
      • 5.3.6 STRING
        • 5.3.6.1 Input
        • 5.3.6.2 Output
      • 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.17.1 Input
        • 5.3.17.2 Output
      • 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.22.1 BFILE
        • 5.3.22.2 BLOB
        • 5.3.22.3 CLOB
        • 5.3.22.4 NCLOB
      • 5.3.23 Datetime and Interval Data Type Descriptors
        • 5.3.23.1 ANSI DATE
        • 5.3.23.2 TIMESTAMP
        • 5.3.23.3 TIMESTAMP WITH TIME ZONE
        • 5.3.23.4 TIMESTAMP WITH LOCAL TIME ZONE
        • 5.3.23.5 INTERVAL YEAR TO MONTH
        • 5.3.23.6 INTERVAL DAY TO SECOND
        • 5.3.23.7 About Avoiding Unexpected Results Using Datetime
      • 5.3.24 Native Float and Native Double
      • 5.3.25 C Object-Relational Data Type Mappings
    • 5.4 Data Conversions
      • 5.4.1 Data Conversions for LOB Data Type Descriptors
      • 5.4.2 Data Conversions for Datetime and Interval Data Types
        • 5.4.2.1 Assignment Notes
        • 5.4.2.2 Data Conversion Notes for Datetime and Interval Types
      • 5.4.3 Datetime and Date Upgrading Rules
        • 5.4.3.1 Pre-9.0 Client with 9.0 or Later Server
        • 5.4.3.2 Pre-9.0 Server with 9.0 or Later Client
      • 5.4.4 Data Conversion for BINARY_FLOAT and BINARY_DOUBLE in OCI
    • 5.5 Typecodes
      • 5.5.1 Relationship Between SQLT and OCI_TYPECODE Values
    • 5.6 Definitions in oratypes.h
  • 6 Using SQL Statements in OCI
    • 6.1 Overview of SQL Statement Processing
    • 6.2 About Preparing Statements
      • 6.2.1 About Using Prepared Statements on Multiple Servers
    • 6.3 About Binding Placeholders in OCI
      • 6.3.1 Rules for Placeholders
    • 6.4 About Executing Statements
      • 6.4.1 Execution Snapshots
      • 6.4.2 Execution Modes of OCIStmtExecute()
        • 6.4.2.1 Using Batch Error Mode
        • 6.4.2.2 Example of Batch Error Mode
    • 6.5 About Describing Select-List Items
      • 6.5.1 Implicit Describe
      • 6.5.2 Explicit Describe of Queries
    • 6.6 About Defining Output Variables in OCI
    • 6.7 About Fetching Results
      • 6.7.1 About Fetching LOB Data
      • 6.7.2 About Setting Prefetch Count
    • 6.8 About Using Scrollable Cursors in OCI
      • 6.8.1 About Increasing Scrollable Cursor Performance
      • 6.8.2 Example of Access on a Scrollable Cursor
  • 7 Binding and Defining in OCI
    • 7.1 Overview of Binding in OCI
      • 7.1.1 Named Binds and Positional Binds
      • 7.1.2 OCI Array Interface
      • 7.1.3 About Binding Placeholders in PL/SQL
      • 7.1.4 Steps Used in OCI Binding
      • 7.1.5 PL/SQL Block in an OCI Program
    • 7.2 Advanced Bind Operations in OCI
      • 7.2.1 About Binding LOBs
        • 7.2.1.1 Binding LOB Locators
          • 7.2.1.1.1 Restrictions on Binding LOB Locators
        • 7.2.1.2 About Binding LOB Data
          • 7.2.1.2.1 Restrictions on Binding LOB Data
          • 7.2.1.2.2 Examples of Binding LOB Data
      • 7.2.2 About Binding in OCI_DATA_AT_EXEC Mode
      • 7.2.3 About Binding REF CURSOR Variables
    • 7.3 Overview of Defining in OCI
      • 7.3.1 Steps Used in OCI Defining
    • 7.4 Advanced Define Operations in OCI
      • 7.4.1 About Defining LOB Output Variables
        • 7.4.1.1 About Defining LOB Locators
        • 7.4.1.2 About Defining LOB Data
      • 7.4.2 About Defining PL/SQL Output Variables
      • 7.4.3 About Defining for a Piecewise Fetch
    • 7.5 About Binding and Defining Arrays of Structures in OCI
      • 7.5.1 Skip Parameters
        • 7.5.1.1 Skip Parameters for Standard Arrays
      • 7.5.2 OCI Calls Used with Arrays of Structures
      • 7.5.3 Arrays of Structures and Indicator Variables
    • 7.6 About Binding and Defining Multiple Buffers
    • 7.7 DML with a RETURNING Clause in OCI
      • 7.7.1 About Using DML with a RETURNING Clause to Combine Two SQL Statements
      • 7.7.2 About Binding RETURNING...INTO Variables
      • 7.7.3 OCI Error Handling
      • 7.7.4 DML with RETURNING REF...INTO Clause in OCI
        • 7.7.4.1 Binding the Output Variable
      • 7.7.5 Additional Notes About OCI Callbacks
      • 7.7.6 Array Interface for DML RETURNING Statements in OCI
    • 7.8 Character Conversion in OCI Binding and Defining
      • 7.8.1 About Choosing a Character Set
        • 7.8.1.1 Character Set Form and ID
        • 7.8.1.2 Implicit Conversion Between CHAR and NCHAR
      • 7.8.2 About Setting Client Character Sets in OCI
      • 7.8.3 About Binding Variables in OCI
        • 7.8.3.1 About Using the OCI_ATTR_MAXDATA_SIZE Attribute
        • 7.8.3.2 About Using the OCI_ATTR_MAXCHAR_SIZE Attribute
        • 7.8.3.3 Buffer Expansion During OCI Binding
          • 7.8.3.3.1 IN Binds
          • 7.8.3.3.2 Dynamic SQL
          • 7.8.3.3.3 Buffer Expansion During Inserts
        • 7.8.3.4 Constraint Checking During Defining
          • 7.8.3.4.1 Dynamic SQL Selects
          • 7.8.3.4.2 Return Lengths
        • 7.8.3.5 General Compatibility Issues for Character-Length Semantics in OCI
          • 7.8.3.5.1 Code Example for Inserting and Selecting Using OCI_ATTR_MAXCHAR_SIZE
          • 7.8.3.5.2 Code Example for UTF-16 Binding and Defining
    • 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.3.1 Performing a Piecewise Insert or Update
      • 7.11.4 Piecewise Operations with PL/SQL
      • 7.11.5 PL/SQL Indexed Table Binding Support
        • 7.11.5.1 Restrictions for PL/SQL Indexed Table Binding Interface
      • 7.11.6 About Providing FETCH Information at Run Time
        • 7.11.6.1 Performing a Piecewise Fetch
      • 7.11.7 Piecewise Binds and Defines for LOBs
  • 8 Describing Schema Metadata
    • 8.1 About Using OCIDescribeAny()
      • 8.1.1 Limitations on OCIDescribeAny()
      • 8.1.2 Notes on Types and Attributes
        • 8.1.2.1 Data Type Codes
        • 8.1.2.2 About Describing Types
        • 8.1.2.3 Implicit and Explicit Describe Operations
        • 8.1.2.4 OCI_ATTR_LIST_ARGUMENTS Attribute
    • 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.3.1 Implicit Describing
      • 8.3.2 Explicit Describing
        • 8.3.2.1 Client and Server Compatibility Issues for Describing
    • 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.4.1 Writing to a LOB Attribute of an Object
      • 9.4.2 Transient Objects with LOB Attributes
    • 9.5 Array Interface for LOBs
    • 9.6 About Using LOBs of Size Greater than 4 GB
      • 9.6.1 Functions to Use for the Increased LOB Sizes
      • 9.6.2 Compatibility and Migration
    • 9.7 LOB and BFILE Functions in OCI
      • 9.7.1 About Improving LOB Read/Write Performance
        • 9.7.1.1 About Using Data Interface for LOBs
        • 9.7.1.2 About Using OCILobGetChunkSize()
        • 9.7.1.3 About Using OCILobWriteAppend2()
        • 9.7.1.4 About Using OCILobArrayRead() and OCILobArrayWrite()
      • 9.7.2 LOB Buffering Functions
      • 9.7.3 Functions for Opening and Closing LOBs
        • 9.7.3.1 Restrictions on Opening and Closing LOBs
      • 9.7.4 LOB Read and Write Callbacks
        • 9.7.4.1 Callback Interface for Streaming
        • 9.7.4.2 Reading LOBs by Using Callbacks
        • 9.7.4.3 Writing LOBs by Using Callbacks
    • 9.8 Temporary LOB Support
      • 9.8.1 Creating and Freeing Temporary LOBs
      • 9.8.2 Temporary LOB Durations
      • 9.8.3 About Freeing Temporary LOBs
      • 9.8.4 Take Care When Assigning Pointers
      • 9.8.5 Temporary LOB Example
    • 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.2.5.1 Showing Update Successfully, One-Phase Commit
        • 10.2.5.2 Showing Starting a Transaction, Detach, Resume, Prepare, Two-Phase Commit
        • 10.2.5.3 Showing a Read-Only Update Fails
        • 10.2.5.4 Showing Starting a Read-Only Transaction, Select, and Commit
    • 10.3 Password and Session Management
      • 10.3.1 OCI Authentication Management
      • 10.3.2 OCI Password Management
      • 10.3.3 Secure External Password Store
      • 10.3.4 OCI Session Management
    • 10.4 Middle-Tier Applications in OCI
      • 10.4.1 OCI Attributes for Middle-Tier Applications
        • 10.4.1.1 OCI_CRED_PROXY
        • 10.4.1.2 OCI_ATTR_PROXY_CREDENTIALS
        • 10.4.1.3 OCI_ATTR_DISTINGUISHED_NAME
        • 10.4.1.4 OCI_ATTR_CERTIFICATE
        • 10.4.1.5 OCI_ATTR_INITIAL_CLIENT_ROLES
        • 10.4.1.6 OCI_ATTR_CLIENT_IDENTIFIER
        • 10.4.1.7 OCI_ATTR_PASSWORD
    • 10.5 Externally Initialized Context in OCI
      • 10.5.1 Externally Initialized Context Attributes in OCI
        • 10.5.1.1 OCI_ATTR_APPCTX_SIZE
        • 10.5.1.2 OCI_ATTR_APPCTX_LIST
        • 10.5.1.3 Session Handle Attributes Used to Set an Externally Initialized Context
      • 10.5.2 End-to-End Application Tracing
        • 10.5.2.1 OCI_ATTR_COLLECT_CALL_TIME
        • 10.5.2.2 OCI_ATTR_CALL_TIME
        • 10.5.2.3 Attributes for End-to-End Application Tracing
      • 10.5.3 Using OCISessionBegin() with an Externally Initialized Context
    • 10.6 Client Application Context
      • 10.6.1 Using Multiple SET Operations
      • 10.6.2 Using CLEAR-ALL Operations Between SET Operations
      • 10.6.3 Network Transport and PL/SQL on Client Namespace
    • 10.7 Using Edition-Based Redefinition
    • 10.8 OCI Security Enhancements
      • 10.8.1 Controlling the Database Version Banner Displayed
      • 10.8.2 Banners for Unauthorized Access and User Actions Auditing
      • 10.8.3 Non-Deferred Linkage
    • 10.9 Overview of OCI Multithreaded Development
      • 10.9.1 Advantages of OCI Thread Safety
      • 10.9.2 OCI Thread Safety and Three-Tier Architectures
      • 10.9.3 About Implementing Thread Safety
        • 10.9.3.1 About Polling Mode Operations and Thread Safety
        • 10.9.3.2 Mixing 7.x and Later Release OCI Calls
    • 10.10 OCIThread Package
      • 10.10.1 Initialization and Termination
        • 10.10.1.1 OCIThread Context
      • 10.10.2 Passive Threading Primitives
        • 10.10.2.1 OCIThreadMutex
        • 10.10.2.2 OCIThreadKey
        • 10.10.2.3 OCIThreadKeyDestFunc
        • 10.10.2.4 OCIThreadId
      • 10.10.3 Active Threading Primitives
        • 10.10.3.1 OCIThreadHandle
  • 11 Session Pooling and Connection Pooling in OCI
    • 11.1 Session Pooling in OCI
      • 11.1.1 Functionality of OCI Session Pooling
      • 11.1.2 Homogeneous and Heterogeneous Session Pools
      • 11.1.3 About Using Tags in Session Pools
        • 11.1.3.1 Multi-Property Tags
          • 11.1.3.1.1 PL/SQL Callback for Session State Fix Up
      • 11.1.4 OCI Handles for Session Pooling
        • 11.1.4.1 OCISPool
        • 11.1.4.2 OCIAuthInfo
      • 11.1.5 Using OCI Session Pooling
      • 11.1.6 OCI Calls for Session Pooling
        • 11.1.6.1 Allocate the Pool Handle
        • 11.1.6.2 Create the Pool Session
        • 11.1.6.3 Log On to the Database
        • 11.1.6.4 Log Off from the Database
        • 11.1.6.5 Destroy the Session Pool
        • 11.1.6.6 Free the Pool Handle
      • 11.1.7 Example of OCI Session Pooling
    • 11.2 Database Resident Connection Pooling
    • 11.3 About Using Oracle Connection Manager in Traffic Director Mode
    • 11.4 Connection Pooling in OCI
      • 11.4.1 OCI Connection Pooling Concepts
        • 11.4.1.1 Similarities and Differences from a Shared Server
        • 11.4.1.2 Stateless Sessions Versus Stateful Sessions
        • 11.4.1.3 Multiple Connection Pools
        • 11.4.1.4 Transparent Application Failover
      • 11.4.2 Using OCI Calls for Connection Pooling
        • 11.4.2.1 Allocate the Pool Handle
        • 11.4.2.2 Create the Connection Pool
        • 11.4.2.3 Log On to the Database
        • 11.4.2.4 Deal with SGA Limitations in Connection Pooling
        • 11.4.2.5 Log Off from the Database
        • 11.4.2.6 Destroy the Connection Pool
        • 11.4.2.7 Free the Pool Handle
      • 11.4.3 Examples of OCI Connection Pooling
    • 11.5 When to Use Connection Pooling, Session Pooling, or Neither
      • 11.5.1 Functions for Session Creation
      • 11.5.2 About Choosing Between Different Types of OCI Sessions
  • 12 High Availability in OCI
    • 12.1 Runtime Connection Load Balancing
    • 12.2 HA Event Notification
      • 12.2.1 OCIEvent Handle
      • 12.2.2 OCI Failover for Connection and Session Pools
      • 12.2.3 OCI Failover for Independent Connections
      • 12.2.4 Event Callback
      • 12.2.5 Custom Pooling: Tagged Server Handles
      • 12.2.6 About Determining Transparent Application Failover (TAF) Capabilities
    • 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.4.1 Developing Applications that Use Transaction Guard
        • 12.4.1.1 Typical Transaction Guard Usage
        • 12.4.1.2 Transaction Guard Examples
    • 12.5 OCI and Application Continuity
      • 12.5.1 About Added Support for Application Continuity
      • 12.5.2 What Happens Following a Recoverable Error
      • 12.5.3 Criteria for Successful Replay
      • 12.5.4 What Factors Disable Application Continuity in OCI
      • 12.5.5 Failed Replay
      • 12.5.6 When Is Application Continuity Most Effective
        • 12.5.6.1 When Application Continuity in OCI Can Fail Over
        • 12.5.6.2 Application Continuity in OCI Does Not Support These Constructs
        • 12.5.6.3 Possible Side Effects of 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.3 OCI and Database Advanced Queuing
      • 13.3.1 OCI Database Advanced Queuing Functions
      • 13.3.2 OCI Database Advanced Queuing Descriptors
      • 13.3.3 Database Advanced Queuing in OCI Versus PL/SQL
      • 13.3.4 Using Buffered Messaging
  • 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
  • 15 Performance Topics
    • 15.1 Statement Caching in OCI
      • 15.1.1 Statement Caching Without Session Pooling in OCI
      • 15.1.2 Statement Caching with Session Pooling in OCI
      • 15.1.3 Rules for Statement Caching in OCI
      • 15.1.4 Bind and Define Optimization in Statement Caching
      • 15.1.5 OCI Statement Caching Code Example
    • 15.2 Implicit Fetching of ROWIDs
      • 15.2.1 About Implicit Fetching of ROWIDs
      • 15.2.2 Example of 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.3.1 <statement_cache>
        • 15.5.3.2 <auto_tune>
          • 15.5.3.2.1 <enable>true</enable>
          • 15.5.3.2.2 <ram_threshold>
          • 15.5.3.2.3 <memory_target>
        • 15.5.3.3 Comparison of the Connection Specific 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
    • 16.1 About OCI Database Startup and Shutdown
    • 16.2 Examples of Startup and Shutdown in OCI
  • 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
    • 18.1 About Specifying a Sharding Key and Super Sharding Key for Getting a Connection from an OCI Session Pool
    • 18.2 About Specifying a Sharding Key and Super Sharding Key for Getting a Connection from a Custom Pool
  • 19 OCI Object-Relational Programming
    • 19.1 OCI Object Overview
    • 19.2 About Working with Objects in OCI
      • 19.2.1 Basic Object Program Structure
      • 19.2.2 Persistent Objects, Transient Objects, and Values
        • 19.2.2.1 Persistent Objects
        • 19.2.2.2 Transient Objects
        • 19.2.2.3 Values
    • 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.5.1 Array Pin
      • 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.9.1 Persistent Object Meta-Attributes
        • 19.3.9.2 Additional Attribute Functions
        • 19.3.9.3 Transient Object Meta-Attributes
      • 19.3.10 Complex Object Retrieval
        • 19.3.10.1 About Prefetching Objects
        • 19.3.10.2 About Implementing Complex Object Retrieval in OCI
      • 19.3.11 COR Prefetching
        • 19.3.11.1 COR Interface
        • 19.3.11.2 Example of COR
      • 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.15.1 Attribute Values of New 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.4.1 Substitutability
      • 19.4.2 NOT INSTANTIABLE Types and Methods
      • 19.4.3 OCI Support for Type Inheritance
        • 19.4.3.1 OCIDescribeAny()
        • 19.4.3.2 Bind and Define Functions
        • 19.4.3.3 OCIObjectGetTypeRef()
        • 19.4.3.4 OCIObjectCopy()
        • 19.4.3.5 OCICollAssignElem()
        • 19.4.3.6 OCICollAppend()
        • 19.4.3.7 OCICollGetElem()
      • 19.4.4 OTT Support for 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.2.1 OCI Type Mapping Methodology
    • 20.3 About Manipulating C Data Types with OCI
      • 20.3.1 Precision of Oracle Number Operations
    • 20.4 Date (OCIDate)
      • 20.4.1 Date Example
    • 20.5 Datetime and Interval (OCIDateTime, OCIInterval)
      • 20.5.1 About Datetime Functions
      • 20.5.2 Datetime Example
      • 20.5.3 About Interval Functions
    • 20.6 Number (OCINumber)
      • 20.6.1 OCINumber Examples
    • 20.7 Fixed or Variable-Length String (OCIString)
      • 20.7.1 About String Functions
      • 20.7.2 String Example
    • 20.8 Raw (OCIRaw)
      • 20.8.1 About Raw Functions
      • 20.8.2 Raw Example
    • 20.9 Collections (OCITable, OCIArray, OCIColl, OCIIter)
      • 20.9.1 Generic Collection Functions
      • 20.9.2 About Collection Data Manipulation Functions
      • 20.9.3 About Collection Scanning Functions
      • 20.9.4 Varray/Collection Iterator Example
      • 20.9.5 About Nested Table Manipulation Functions
        • 20.9.5.1 Nested Table Element Ordering
      • 20.9.6 Nested Table Locators
    • 20.10 About Multilevel Collection Types
      • 20.10.1 Multilevel Collection Type Example
    • 20.11 REF (OCIRef)
      • 20.11.1 About REF Manipulation Functions
      • 20.11.2 REF Example
    • 20.12 Object Type Information Storage and Access
      • 20.12.1 Descriptor Objects
    • 20.13 AnyType, AnyData, and AnyDataSet Interfaces
      • 20.13.1 About Type Interfaces
        • 20.13.1.1 About Creating a Parameter Descriptor for OCIType Calls
        • 20.13.1.2 About Obtaining the OCIType for Persistent Types
        • 20.13.1.3 Type Access Calls
        • 20.13.1.4 Extensions to OCIDescribeAny()
      • 20.13.2 About OCIAnyData Interfaces
      • 20.13.3 NCHAR Typecodes for OCIAnyData Functions
      • 20.13.4 About OCIAnyDataSet Interfaces
    • 20.14 About Binding Named Data Types
      • 20.14.1 Named Data Type Binds
      • 20.14.2 About Binding REFs
      • 20.14.3 Information for Named Data Type and REF Binds
      • 20.14.4 Information Regarding Array Binds
    • 20.15 About Defining Named Data Types
      • 20.15.1 About Defining Named Data Type Output Variables
      • 20.15.2 About Defining REF Output Variables
      • 20.15.3 Information for Named Data Type and REF Defines, and PL/SQL OUT Binds
        • 20.15.3.1 Information About Array Defines
    • 20.16 About Binding and Defining Oracle C Data Types
      • 20.16.1 Bind and Define Examples
      • 20.16.2 Salary Update Examples
        • 20.16.2.1 Method 1 - Fetch, Convert, Assign
        • 20.16.2.2 Method 2 - Fetch and Assign
        • 20.16.2.3 Method 3 - Direct Fetch
        • 20.16.2.4 Summary and Notes
    • 20.17 SQLT_NTY Bind and Define Examples
      • 20.17.1 SQLT_NTY Bind Example
      • 20.17.2 SQLT_NTY Define Example
  • 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.2.1 Direct Path Context
        • 21.1.2.2 OCI Direct Path Function Context
        • 21.1.2.3 Direct Path Column Array and Direct Path Function Column Array
        • 21.1.2.4 Direct Path Stream
      • 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.5.1 Data Structures Used in Direct Path Loading Example
        • 21.1.5.2 Outline of an Example of a Direct Path Load for Scalar Columns
      • 21.1.6 About Using a Date Cache in Direct Path Loading of Dates in OCI
        • 21.1.6.1 OCI_ATTR_DIRPATH_DCACHE_SIZE
        • 21.1.6.2 OCI_ATTR_DIRPATH_DCACHE_NUM
        • 21.1.6.3 OCI_ATTR_DIRPATH_DCACHE_MISSES
        • 21.1.6.4 OCI_ATTR_DIRPATH_DCACHE_HITS
        • 21.1.6.5 OCI_ATTR_DIRPATH_DCACHE_DISABLE
      • 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.1.1 Describing a Nested Table Column and Its Nested Table
      • 21.2.2 Direct Path Loading of Column Objects
        • 21.2.2.1 Describing a Column Object
        • 21.2.2.2 Allocating the Array Column for the Column Object
        • 21.2.2.3 Loading Column Object Data into the Column Array
        • 21.2.2.4 OCI_DIRPATH_COL_ERROR
      • 21.2.3 Direct Path Loading of SQL String Columns
        • 21.2.3.1 Describing a SQL String Column
        • 21.2.3.2 Allocating the Column Array for SQL String Columns
        • 21.2.3.3 Loading the SQL String Data into the Column Array
      • 21.2.4 Direct Path Loading of REF Columns
        • 21.2.4.1 Describing the REF Column
        • 21.2.4.2 Allocating the Column Array for a REF Column
        • 21.2.4.3 Loading the REF Data into the Column Array
      • 21.2.5 Direct Path Loading of NOT FINAL Object and REF Columns
        • 21.2.5.1 Inheritance Hierarchy
        • 21.2.5.2 About Describing a Fixed, Derived Type to Be Loaded
        • 21.2.5.3 About Allocating the Column Array
        • 21.2.5.4 About Loading the Data into the Column Array
      • 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.3.1 Loading Object Types in Pieces
    • 21.4 Direct Path Context Handles and Attributes for Object Types
      • 21.4.1 Direct Path Context Attributes
        • 21.4.1.1 OCI_ATTR_DIRPATH_OBJ_CONSTR
      • 21.4.2 Direct Path Function Context and Attributes
        • 21.4.2.1 OCI_ATTR_DIRPATH_OBJ_CONSTR
        • 21.4.2.2 OCI_ATTR_NAME
        • 21.4.2.3 OCI_ATTR_DIRPATH_EXPR_TYPE
        • 21.4.2.4 OCI_ATTR_DIRPATH_NO_INDEX_ERRORS
        • 21.4.2.5 OCI_ATTR_NUM_COLS
        • 21.4.2.6 OCI_ATTR_NUM_ROWS
      • 21.4.3 Direct Path Column Parameter Attributes
        • 21.4.3.1 OCI_ATTR_NAME
        • 21.4.3.2 OCI_ATTR_DIRPATH_SID
        • 21.4.3.3 OCI_ATTR_DIRPATH_OID
      • 21.4.4 Direct Path Function Column Array Handle for Nonscalar Columns
        • 21.4.4.1 OCI_ATTR_NUM_ROWS Attribute
  • 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.3.1 About Pinning and Unpinning
        • 22.1.3.2 About Freeing
        • 22.1.3.3 About Marking and Unmarking
        • 22.1.3.4 About Flushing
        • 22.1.3.5 About Refreshing
      • 22.1.4 About Loading and Removing Object Copies
        • 22.1.4.1 About Pinning an Object Copy
        • 22.1.4.2 About Unpinning an Object Copy
        • 22.1.4.3 About Freeing an Object Copy
      • 22.1.5 About Making Changes to Object Copies
        • 22.1.5.1 About Marking an Object Copy
        • 22.1.5.2 About Unmarking an Object Copy
      • 22.1.6 About Synchronizing Object Copies with the Server
        • 22.1.6.1 About Flushing Changes to the Server
        • 22.1.6.2 About Refreshing an Object Copy
      • 22.1.7 Object Locking
        • 22.1.7.1 Lock Options
        • 22.1.7.2 About Locking Objects for Update
        • 22.1.7.3 About Locking with the NOWAIT Option
        • 22.1.7.4 About Implementing Optimistic Locking
      • 22.1.8 Commit and Rollback in Object Applications
      • 22.1.9 Object Duration
        • 22.1.9.1 Durations Example
      • 22.1.10 Memory Layout of an Instance
    • 22.2 Object Navigation
      • 22.2.1 Simple Object Navigation
    • 22.3 OCI Navigational Functions
      • 22.3.1 About Pin/Unpin/Free Functions
      • 22.3.2 About Flush and Refresh Functions
      • 22.3.3 About Mark and Unmark Functions
      • 22.3.4 About Object Meta-Attribute Accessor Functions
      • 22.3.5 About Other Functions
    • 22.4 Type Evolution and the Object Cache
  • 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.1.1 About Creating Types in the Database
      • 24.1.2 About Invoking OTT
        • 24.1.2.1 Command Line
        • 24.1.2.2 Configuration File
        • 24.1.2.3 INTYPE File
    • 24.2 OTT Command Line
      • 24.2.1 OTT Command-Line Invocation Example
        • 24.2.1.1 OTT
        • 24.2.1.2 USERID
        • 24.2.1.3 INTYPE
        • 24.2.1.4 OUTTYPE
        • 24.2.1.5 CODE
        • 24.2.1.6 HFILE
        • 24.2.1.7 INITFILE
    • 24.3 Intype File
    • 24.4 OTT Data Type Mappings
      • 24.4.1 About Mapping Object Data Types to C
      • 24.4.2 OTT Type Mapping Example
      • 24.4.3 Null Indicator Structs
      • 24.4.4 OTT Support for Type Inheritance
        • 24.4.4.1 Substitutable Object Attributes
    • 24.5 Outtype File
    • 24.6 About Using OTT with OCI Applications
      • 24.6.1 About Accessing and Manipulating Objects with OCI
      • 24.6.2 Calling the Initialization Function
      • 24.6.3 Tasks of the Initialization Function
    • 24.7 OTT Reference
      • 24.7.1 OTT Command-Line Syntax
      • 24.7.2 OTT Parameters
        • 24.7.2.1 USERID
        • 24.7.2.2 INTYPE
        • 24.7.2.3 OUTTYPE
        • 24.7.2.4 CODE
        • 24.7.2.5 INITFILE
        • 24.7.2.6 INITFUNC
        • 24.7.2.7 HFILE
        • 24.7.2.8 CONFIG
        • 24.7.2.9 ERRTYPE
        • 24.7.2.10 CASE
        • 24.7.2.11 SCHEMA_NAMES
        • 24.7.2.12 TRANSITIVE
        • 24.7.2.13 URL
      • 24.7.3 Where OTT Parameters Can Appear
      • 24.7.4 Structure of the Intype File
        • 24.7.4.1 Intype File Type Specifications
      • 24.7.5 Nested Included File Generation
      • 24.7.6 SCHEMA_NAMES Usage
        • 24.7.6.1 Example: 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.1.1 Conventions for OCI Functions
      • 25.1.2 Purpose
      • 25.1.3 Syntax
      • 25.1.4 Parameters
      • 25.1.5 Comments
      • 25.1.6 Returns
      • 25.1.7 Example
      • 25.1.8 Related Functions
      • 25.1.9 About Calling OCI Functions
      • 25.1.10 Server Round-Trips for LOB 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.3.1 OCIArrayDescriptorAlloc()
      • 25.3.2 OCIArrayDescriptorFree()
      • 25.3.3 OCIAttrGet()
      • 25.3.4 OCIAttrSet()
      • 25.3.5 OCIDescriptorAlloc()
      • 25.3.6 OCIDescriptorFree()
      • 25.3.7 OCIHandleAlloc()
      • 25.3.8 OCIHandleFree()
      • 25.3.9 OCIParamGet()
      • 25.3.10 OCIParamSet()
    • 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.1.1 Conventions for OCI Functions
    • 26.2 Statement Functions
      • 26.2.1 OCIStmtExecute()
      • 26.2.2 OCIStmtFetch2()
      • 26.2.3 OCIStmtGetNextResult()
      • 26.2.4 OCIStmtGetPieceInfo()
      • 26.2.5 OCIStmtPrepare2()
      • 26.2.6 OCIStmtRelease()
      • 26.2.7 OCIStmtSetPieceInfo()
    • 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.4.1 OCIAQDeq()
      • 26.4.2 OCIAQDeqArray()
      • 26.4.3 OCIAQEnq()
      • 26.4.4 OCIAQEnqArray()
      • 26.4.5 OCIAQListen2()
      • 26.4.6 OCISubscriptionDisable()
      • 26.4.7 OCISubscriptionEnable()
      • 26.4.8 OCISubscriptionPost()
      • 26.4.9 OCISubscriptionRegister()
      • 26.4.10 OCISubscriptionUnRegister()
    • 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.7.1 OCITransCommit()
      • 26.7.2 OCITransDetach()
      • 26.7.3 OCITransForget()
      • 26.7.4 OCITransMultiPrepare()
      • 26.7.5 OCITransPrepare()
      • 26.7.6 OCITransRollback()
      • 26.7.7 OCITransStart()
    • 26.8 Sharding Functions
      • 26.8.1 OCIShardingKeyColumnAdd()
      • 26.8.2 OCIShardingKeyReset()
      • 26.8.3 OCIShardInstancesGet()
    • 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.1.1 Object Types and Lifetimes
      • 27.1.2 Terminology
      • 27.1.3 Conventions for OCI Functions
      • 27.1.4 Return Values
      • 27.1.5 Navigational Function Return Values
      • 27.1.6 Server Round-Trips for Cache and Object Functions
      • 27.1.7 Navigational Function Error Codes
    • 27.2 OCI Flush or Refresh Functions
      • 27.2.1 OCICacheFlush()
      • 27.2.2 OCICacheRefresh()
      • 27.2.3 OCIObjectFlush()
      • 27.2.4 OCIObjectRefresh()
    • 27.3 OCI Mark or Unmark Object and Cache Functions
      • 27.3.1 OCICacheUnmark()
      • 27.3.2 OCIObjectMarkDelete()
      • 27.3.3 OCIObjectMarkDeleteByRef()
      • 27.3.4 OCIObjectMarkUpdate()
      • 27.3.5 OCIObjectUnmark()
      • 27.3.6 OCIObjectUnmarkByRef()
    • 27.4 OCI Get Object Status Functions
      • 27.4.1 OCIObjectExists()
      • 27.4.2 OCIObjectGetProperty()
      • 27.4.3 OCIObjectIsDirty()
      • 27.4.4 OCIObjectIsLocked()
    • 27.5 OCI Miscellaneous Object Functions
      • 27.5.1 OCIObjectCopy()
      • 27.5.2 OCIObjectGetAttr()
      • 27.5.3 OCIObjectGetInd()
      • 27.5.4 OCIObjectGetObjectRef()
      • 27.5.5 OCIObjectGetTypeRef()
      • 27.5.6 OCIObjectLock()
      • 27.5.7 OCIObjectLockNoWait()
      • 27.5.8 OCIObjectNew()
      • 27.5.9 OCIObjectSetAttr()
    • 27.6 OCI Pin, Unpin, and Free Functions
      • 27.6.1 OCICacheFree()
      • 27.6.2 OCICacheUnpin()
      • 27.6.3 OCIObjectArrayPin()
      • 27.6.4 OCIObjectFree()
      • 27.6.5 OCIObjectPin()
      • 27.6.6 OCIObjectPinCountReset()
      • 27.6.7 OCIObjectPinTable()
      • 27.6.8 OCIObjectUnpin()
    • 27.7 OCI Type Information Accessor Functions
      • 27.7.1 OCITypeArrayByName()
      • 27.7.2 OCITypeArrayByFullName()
      • 27.7.3 OCITypeArrayByRef()
      • 27.7.4 OCITypeByFullName()
      • 27.7.5 OCITypeByName()
      • 27.7.6 OCITypeByRef()
      • 27.7.7 OCITypePackage()
  • 28 OCI Data Type Mapping and Manipulation Functions
    • 28.1 Introduction to Data Type Mapping and Manipulation Functions
      • 28.1.1 Conventions for OCI Functions
      • 28.1.2 Returns
      • 28.1.3 Data Type Mapping and Manipulation Function Return Values
      • 28.1.4 Functions Returning Other Values
      • 28.1.5 Server Round-Trips for Data Type Mapping and Manipulation Functions
      • 28.1.6 Examples
    • 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.5.1 OCIRawAllocSize()
      • 28.5.2 OCIRawAssignBytes()
      • 28.5.3 OCIRawAssignRaw()
      • 28.5.4 OCIRawPtr()
      • 28.5.5 OCIRawResize()
      • 28.5.6 OCIRawSize()
    • 28.6 OCI REF Functions
      • 28.6.1 OCIRefAssign()
      • 28.6.2 OCIRefClear()
      • 28.6.3 OCIRefFromHex()
      • 28.6.4 OCIRefHexSize()
      • 28.6.5 OCIRefIsEqual()
      • 28.6.6 OCIRefIsNull()
      • 28.6.7 OCIRefToHex()
    • 28.7 OCI String Functions
      • 28.7.1 OCIStringAllocSize()
      • 28.7.2 OCIStringAssign()
      • 28.7.3 OCIStringAssignText()
      • 28.7.4 OCIStringPtr()
      • 28.7.5 OCIStringResize()
      • 28.7.6 OCIStringSize()
    • 28.8 OCI Table Functions
      • 28.8.1 OCITableDelete()
      • 28.8.2 OCITableExists()
      • 28.8.3 OCITableFirst()
      • 28.8.4 OCITableLast()
      • 28.8.5 OCITableNext()
      • 28.8.6 OCITablePrev()
      • 28.8.7 OCITableSize()
  • 29 OCI Cartridge Functions
    • 29.1 Introduction to External Procedure and Cartridge Services Functions
      • 29.1.1 Conventions for OCI Functions
    • 29.2 Cartridge Services — OCI External Procedures
      • 29.2.1 OCIExtProcAllocCallMemory()
      • 29.2.2 OCIExtProcGetEnv()
      • 29.2.3 OCIExtProcRaiseExcp()
      • 29.2.4 OCIExtProcRaiseExcpWithMsg()
    • 29.3 Cartridge Services — Memory Services
      • 29.3.1 OCIDurationBegin()
      • 29.3.2 OCIDurationEnd()
      • 29.3.3 OCIMemoryAlloc()
      • 29.3.4 OCIMemoryFree()
      • 29.3.5 OCIMemoryResize()
    • 29.4 Cartridge Services — Maintaining Context
      • 29.4.1 OCIContextClearValue()
      • 29.4.2 OCIContextGenerateKey()
      • 29.4.3 OCIContextGetValue()
      • 29.4.4 OCIContextSetValue()
    • 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.6.1 OCIFileClose()
      • 29.6.2 OCIFileExists()
      • 29.6.3 OCIFileFlush()
      • 29.6.4 OCIFileGetLength()
      • 29.6.5 OCIFileInit()
      • 29.6.6 OCIFileOpen()
      • 29.6.7 OCIFileRead()
      • 29.6.8 OCIFileSeek()
      • 29.6.9 OCIFileTerm()
      • 29.6.10 OCIFileWrite()
    • 29.7 Cartridge Services — String Formatting Interface
      • 29.7.1 OCIFormatInit()
      • 29.7.2 OCIFormatString()
      • 29.7.3 OCIFormatTerm()
  • 30 OCI Any Type and Data Functions
    • 30.1 Introduction to Any Type and Data Interfaces
      • 30.1.1 Conventions for OCI Functions
    • 30.2 OCI Type Interface Functions
      • 30.2.1 OCITypeAddAttr()
      • 30.2.2 OCITypeBeginCreate()
      • 30.2.3 OCITypeEndCreate()
      • 30.2.4 OCITypeSetBuiltin()
      • 30.2.5 OCITypeSetCollection()
    • 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
      • 30.4.1 OCIAnyDataSetAddInstance()
      • 30.4.2 OCIAnyDataSetBeginCreate()
      • 30.4.3 OCIAnyDataSetDestroy()
      • 30.4.4 OCIAnyDataSetEndCreate()
      • 30.4.5 OCIAnyDataSetGetCount()
      • 30.4.6 OCIAnyDataSetGetInstance()
      • 30.4.7 OCIAnyDataSetGetType()
  • 31 OCI Globalization Support Functions
    • 31.1 Introduction to Globalization Support in OCI
      • 31.1.1 Conventions for OCI Functions
    • 31.2 OCI Locale Functions
      • 31.2.1 OCINlsCharSetIdToName()
      • 31.2.2 OCINlsCharSetNameToId()
      • 31.2.3 OCINlsEnvironmentVariableGet()
      • 31.2.4 OCINlsGetInfo()
      • 31.2.5 OCINlsNumericInfoGet()
    • 31.3 OCI Locale-Mapping Function
      • 31.3.1 OCINlsNameMap()
    • 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.6.1 OCICharSetConversionIsReplacementUsed()
      • 31.6.2 OCICharSetToUnicode()
      • 31.6.3 OCINlsCharSetConvert()
      • 31.6.4 OCIUnicodeToCharSet()
    • 31.7 OCI Messaging Functions
      • 31.7.1 OCIMessageClose()
      • 31.7.2 OCIMessageGet()
      • 31.7.3 OCIMessageOpen()
  • 32 OCI XML DB Functions
    • 32.1 Introduction to XML DB Support in OCI
      • 32.1.1 Conventions for OCI Functions
      • 32.1.2 Returns
    • 32.2 OCI XML DB Functions
      • 32.2.1 OCIBinXmlCreateReposCtxFromConn()
      • 32.2.2 OCIBinXmlCreateReposCtxFromCPool()
      • 32.2.3 OCIBinXmlSetFormatPref()
      • 32.2.4 OCIBinXmlSetReposCtxForConn()
      • 32.2.5 OCIXmlDbFreeXmlCtx()
      • 32.2.6 OCIXmlDbInitXmlCtx()
  • 33 Oracle ODBC Driver
  • 34 Introduction to the OCI Interface for XStream
    • 34.1 About the XStream Interface
      • 34.1.1 XStream Out
      • 34.1.2 XStream In
      • 34.1.3 Position Order and LCR Streams
      • 34.1.4 XStream and Character Sets
    • 34.2 Handler and Descriptor Attributes
      • 34.2.1 Conventions
      • 34.2.2 Server Handle Attributes
        • 34.2.2.1 OCI_ATTR_XSTREAM_ACK_INTERVAL
        • 34.2.2.2 OCI_ATTR_XSTREAM_IDLE_TIMEOUT
  • 35 OCI XStream Functions
    • 35.1 About Using the XStream Interface
      • 35.1.1 XStream Out
        • 35.1.1.1 LCR Streams
        • 35.1.1.2 The Processed Low Position and Restart Considerations
      • 35.1.2 XStream In
        • 35.1.2.1 Processed Low Position and Restart Ability
        • 35.1.2.2 Stream Position
      • 35.1.3 Security of XStreams
    • 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.5.1 Authentication Information Handle Attributes
      • A.5.2 User Session Handle Attributes
    • A.6 Administration Handle Attributes
    • A.7 Connection Pool Handle Attributes
      • A.7.1 Session 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.20.1 Complex Object Retrieval Handle Attributes
      • A.20.2 Complex Object Retrieval Descriptor Attributes
    • A.21 Database Advanced Queuing Descriptor Attributes
      • A.21.1 OCIAQEnqOptions Descriptor Attributes
      • A.21.2 OCIAQDeqOptions Descriptor Attributes
      • A.21.3 OCIAQMsgProperties Descriptor Attributes
      • A.21.4 OCIAQAgent Descriptor Attributes
      • A.21.5 OCIServerDNs Descriptor Attributes
    • A.22 Subscription Handle Attributes
      • A.22.1 Continuous Query Notification Attributes
      • A.22.2 Continuous Query Notification Descriptor Attributes
      • A.22.3 Notification Descriptor Attributes
      • A.22.4 Invalidated Query 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.23.5.1 About Accessing Column Parameter Attributes
    • A.24 Process Handle Attributes
    • A.25 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 Object and Cache Function Round-Trips
    • C.4 Describe Operation Round-Trips
    • C.5 Data Type Mapping and Manipulation Function Round-Trips
    • C.6 Any Type and Data Function Round-Trips
    • C.7 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.5.1 oci.lib
      • D.5.2 Client DLL Loading When Using Load Library()
    • D.6 About Running OCI Applications for Windows
    • D.7 Oracle XA Library
      • D.7.1 About Compiling and Linking an OCI Program with the Oracle XA Library
      • D.7.2 About Using XA Dynamic Registration
        • D.7.2.1 Adding an Environmental Variable for the Current Session
        • D.7.2.2 About Adding a Registry Variable for All Sessions
        • D.7.2.3 Adding a Registry Variable:
      • D.7.3 XA and TP Monitor Information
    • D.8 About Using the Object Type Translator for Windows
  • E Deprecated OCI Features and Functions
    • E.1 Deprecated Initialize Functions
      • E.1.1 OCIEnvInit()
      • E.1.2 OCIInitialize()
    • E.2 Deprecated Statement Functions
      • E.2.1 OCIStmtFetch()
      • E.2.2 OCIStmtPrepare()
    • E.3 Deprecated Lob Functions
      • E.3.1 OCILobCopy()
      • E.3.2 OCILobDisableBuffering()
      • E.3.3 OCILobEnableBuffering()
      • E.3.4 OCILobErase()
      • E.3.5 OCILobFlushBuffer()
      • E.3.6 OCILobGetLength()
      • E.3.7 OCILobLoadFromFile()
      • E.3.8 OCILobRead()
      • E.3.9 OCILobTrim()
      • E.3.10 OCILobWrite()
      • E.3.11 OCILobWriteAppend()
    • E.4 Deprecated Database Advanced Queuing Functions
      • E.4.1 OCIAQListen()
  • F Multithreaded extproc Agent
    • F.1 Why Use the Multithreaded extproc Agent?
      • F.1.1 The Challenge of Dedicated Agent Architecture
      • F.1.2 The Advantage of Multithreading
    • F.2 Multithreaded extproc Agent Architecture
      • F.2.1 Monitor Thread
      • F.2.2 Dispatcher Threads
      • F.2.3 Task Threads
    • 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.3.1 Example: Setting a Configuration Parameter
        • F.3.3.2 Example: Starting a Multithreaded extproc Agent
      • F.3.4 Configuration Parameters for Multithreaded extproc Agent Control
  • Index

Search

Print

Download

PDF for offline and print

  • Previous
  • Next
  1. Programmer's Guide
  2. OCI XML DB Functions

32 OCI XML DB Functions

This chapter describes the OCI XML DB functions.

This chapter contains these topics:

  • Introduction to XML DB Support in OCI

  • OCI XML DB Functions

  • Previous
  • Next
Back to main content
  • About Oracle
  • Contact Us
  • Legal Notices
  • Terms of Use
  • Your Privacy Rights
  • Cookie Preferences
Copyright © 1996, 2019, Oracle and/or its affiliates. All rights reserved.
  • Previous
  • Next
Video