Call Interface

Exposing the full power of Oracle Database

Oracle Call Interface (OCI) is the comprehensive, high performance, native C language interface to Oracle Database for custom or packaged applications.

OCI is highly reliable. Oracle tools such as SQL*Plus, Real Application Testing (RAT), SQL*Loader, and Data-Pump all use OCI. OCI provides the foundation on which other language-specific interfaces such as Oracle JDBC-OCI, Oracle Data Provider for Net (ODP.Net), Oracle Precompilers, Oracle ODBC, and Oracle C++ Call Interface (OCCI) drivers are built. OCI is also used by leading scripting language drivers such as node-oracledb for Node.js, PHP OCI8, ruby-oci8, Perl DBD::Oracle, Python cx_Oracle, and the statistical programming language R's ROracle driver.

A broad range of customers including Fortune 500 customers and ISVs develop high performance applications directly in OCI.

OCI libraries are included by default in Oracle Database 12c. OCI is also in the lightweight Oracle Instant Client, allowing ISVs and customers to quickly install and deploy OCI applications and tools. See the Oracle Instant Client page for more information.

Oracle Database Programming Interface for C (ODPI-C)

New! ODPI-C 2.1 is available with support for sharded Database access

Oracle Database Programming Interface for C (ODPI-C) is a new open source library of C code that simplifies the use of common OCI features for Oracle Database drivers and user applications.

ODPI-C is a thin layer on top of OCI and requires Oracle client libraries.

ODPI-C's goal is to expose common OCI functionality in a readily consumable way to the C or C++ developer. OCI's API is extremely flexible and is highly efficient, giving very fine-grained control to the developer for a wide range of use cases. ODPI-C is also flexible but is aimed primarily at language driver creators. These creators are programming within the confines of a scripting language's type system and semantics. The languages often expose simplified data access to users through cross-platform, 'common-denominator' APIs. Therefore ODPI-C provides easy to use functionality for common data access, while still providing the power of Oracle Database.

Of course ODPI-C isn't just restricted to drivers. ODPI-C is licensed under the Apache 2.0 and/or the Oracle UPL licenses, so the code can be resused in your own projects.

Best Practices for Application Performance, Scalability, and Availability

View this great Oracle Open World session from Nancy Ikeda, a senior developer at Oracle.


The session description was: Best practice coding samples and techniques show how to resolve connection management, statement execution, and data fetching inefficiencies in applications using APIs such as JDBC, OCI, ODBC, ODP.Net, or higher-level scripting languages. This session shows how the Automatic Workload Repository feature of Oracle Database and Automatic Database Diagnostic Monitor profiling tools help diagnose application design and coding issues. Specific solutions show how to resolve these and other issues to enhance applications for scalability and resilience. Among the solutions discussed are Oracle Database 12c’s new client configuration file. Developers or DBAs can use it to tune and configure applications without modifying code. Examples use JDBC and OCI but are applicable to all APIs.

What's New in OCI for Oracle Database 12c

  • Support for Application Continuity improving application high availability
  • Support for sharded, multitenant container databases and pluggable databases
  • Increased identifier length to 128 bytes
  • Increased size limit for VARCHAR2, NVARCHAR2, and RAW data types to 32K
  • Large row counts
  • Support for PL/SQL package types and Boolean types for PL/SQL parameters
  • Auto-tuning of the client statement cache
  • Support of Implicit Result Set
  • Support of IDENTITY/auto-increment columns
  • oraaccess.xml configuration file for specifying client-side deployment settings
  • Support for SQL translation feature in Oracle Database
  • Row count per iteration for array DML
  • Lifetime setting for sessions in a session pool
  • Support for monitoring database operations
  • Support for Transaction Guard
  • New and changed OCI XStream features
  • Manageability support for XStream and GoldenGate integration

Technical Information

Related Technologies

Other Developer Resources