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.
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.
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.
Oracle Instant Client
Oracle Database 11g
Oracle Database 10g