Oracle Call Interface
Encyclopedia
In computing, the Oracle Call Interface (OCI) consists of a set of C
-language software APIs
which provide an interface to the Oracle database
.
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
or SQL
to query, access, and manipulate data. The OCI library, based on Oracle's undocumented User Programmatic Interface
(UPI), acts as an "interpreter" between applications and the low-level database network protocol.
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
statement: the call
Later, in Oracle8 (released in 1997), OCI calls acquired more descriptive names;
, 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
, and the Linter SQL RDBMS
.
Due to the complexity of the OCI API, several easier-to-use OCI wrapper libraries also exist, such as:
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
-language software APIs
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
which provide an interface to the Oracle database
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....
.
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
PL/SQL is Oracle Corporation's procedural extension language for SQL and the Oracle relational database...
or SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
to query, access, and manipulate data. The OCI library, based on Oracle's undocumented User Programmatic Interface
User Programmatic Interface
In computing, the User Programmatic Interface ', also known as the User Program Interface, consists of a set of C-language software APIs which provide the lowest-level API-based interface to the Oracle database.-Overview:...
(UPI), acts as an "interpreter" between applications and the low-level database network protocol.
History
Oracle CorporationOracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
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
Rollback (data management)
In database technologies, a rollback is an operation which returns the database to some previous state. Rollbacks are important for database integrity, because they mean that the database can be restored to a clean copy even after erroneous operations are performed...
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 OracleOracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
, 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
EnterpriseDB is a privately held company that provides enterprise class support for PostgreSQL through its product Postgres Plus Standard Server, which is PostgreSQL with extra bundled modules...
, and the Linter SQL RDBMS
Linter SQL RDBMS
Linter SQL RDBMS is the main product of RELEX Group. Linter is a Russian DBMS compliant with the SQL-92 standard and supporting the majority of operating systems, among them Win32 , NetWare, various versions of Unix, OS9, QNX, VxWorks and others...
.
OCI-based libraries
Several libraries are based on top of OCI, including:- Oracle's Type-II JDBC DriverJDBC driverA JDBC driver is a software component enabling a Java application to interact with a database. JDBC drivers are analogous to ODBC drivers, ADO.NET data providers, and OLE DB providers....
(part-Java, part native) - Oracle's enhanced C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
library, Oracle C++ Call Interface (OCCI), which provides an object-oriented interface with the object-relational features of the Oracle database. - Oracle's OLE DB Driver
- Oracle's ODBC Driver
- Oracle's .NET.NET FrameworkThe .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
Data Provider, ODP.NET - Microsoft's ODBC Driver for Oracle
- Easysoft's ODBC-Oracle Driver
- Trolltech's Qt C++ toolkitQt (toolkit)Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface , and also used for developing non-GUI programs such as command-line tools and consoles for servers...
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.
- the open-source OCILIBOcilibOCILIB is an open source and cross platform Oracle C library that delivers fast and reliable access to Oracle databases.The OCILIB library :* offers a rich, full featured and easy to use C API* runs on all Oracle platforms...
library.