In computing, the Oracle Call Interface (OCI) consists of a set of
C-language
software APIs which provide an interface to the
Oracle database
Oracle Database (commonly referred to as Oracle DBMS, Oracle Autonomous Database, or simply as Oracle) is a multi-model database management system produced and marketed by Oracle Corporation.
It is a database commonly used for running online ...
.
OCI offers a procedural API for not only performing certain database administration tasks (such as system startup and shutdown), but also for using
PL/SQL
PL/SQL (Procedural Language for SQL) is Oracle Corporation's procedural extension for SQL and the Oracle relational database. PL/SQL is available in Oracle Database (since version 6 - stored PL/SQL procedures/functions/packages/triggers since ...
or
SQL to query, access, and manipulate data. The OCI library, based on Oracle's undocumented
User Programmatic Interface
In computing, the User Programmatic Interface (UPI), also known as the User Program Interface, consists of a set of C_(programming_language), C-language application programming interface , software APIs which provide the lowest-level API-based in ...
(UPI), acts as an "
interpreter" between applications and the low-level database network protocol.
History
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
first released OCI (under the name HLI, the Host Language Interface) with Oracle Database version 6 in 1988. As HLI (and subsequently OCI) operated as wrappers for UPI, their original naming conventions closely resembled those of the UPI calls they were based upon. For example, the
rollback
In political science, rollback is the strategy of forcing a change in the major policies of a state, usually by replacing its ruling regime. It contrasts with containment, which means preventing the expansion of that state; and with détente, w ...
statement: the call
upirol
in UPI became
orol
in OCI.
Later, in Oracle8 (released in 1997), OCI calls acquired more descriptive names;
orol
became
OCITransRollback
. Subsequent improvements have been made in every version of OCI, including 11g (released in 2007). Oracle Corporation claims that OCI is "So reliable that every SQL statement in the Oracle Database executes with OCI".
Implementations
OCI is so popular that, in addition to
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The wor ...
, several other vendors have implemented their own libraries compatible with the OCI API. To date, OCI-compatible libraries exist for the ANTs Data Server (ADS),
EnterpriseDB
EnterpriseDB (EDB), a privately held company based in Massachusetts, provides software and services based on the open-source database PostgreSQL (also known as Postgres), and is one of the largest contributors to Postgres. EDB develops and inte ...
, and the
Linter SQL RDBMS
Linter SQL RDBMS is the main product of RELEX Group. Linter is a Russian DBMS compliant with the SQL:2003 standard and supporting the majority of operating systems, among them Windows, various versions of Unix, QNX, and others. The system enable ...
OCI-based libraries
Several libraries are based on top of OCI, including:
* Oracle's
Type-II JDBC Driver (part-Java, part native)
* Oracle's enhanced
C++ library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
,
Oracle C++ Call Interface
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The word '' ...
(OCCI), which provides an
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
interface with the
object-relational features of the Oracle database.
* Oracle's
OLE DB
OLE DB (''Object Linking and Embedding, Database'', sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using ...
Driver
* Oracle's
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. A ...
Driver
* Oracle's
.NET Data Provider, ODP.NET
* Microsoft's
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. A ...
Driver for Oracle
* Easysoft's
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. A ...
-Oracle Driver
* Trolltech's
Qt C++ toolkit OCI driver (QOCI)
Due to the complexity of the OCI API, several easier-to-use OCI wrapper libraries also exist, such as:
* the open-source libsqlora8 library (deprecated).
* the open-source
OCILIB library.
* the
Open BSD licensed Oracle Template Library OTL library.
References
External links
*
Oracle Call Interface FAQPublic OCI Support Forum (OTN)
Oracle software
{{database-software-stub