Oracle Call Interface: Difference between revisions

Content deleted Content added
Removed link to Jeff Ullman's page as it contained no OCI information; only Pro*C.
Added history and additional useful information and resources.
Line 1:
In computing, the '''Oracle Call Interface''' '''(OCI)''' consists of a set of low-level APIs ([[Application programming interfaceC_(programming_language)|C]] calls) used to interact with-language [[Oracle databasesoftware]]s. Programmers usually write OCI routines in [[Capplication (programming language)interface|CAPIs]] orwhich [[C++]],provide althougha almostlow-level anyinterface to the [[programmingOracle languagedatabase]] will serve.
 
==Overview==
OCI also appears in Oracle environments in the form of the OCI [[device driver | driver]]: a [[Java Database Connectivity | JDBC]] [[client-side]] driver providing a [[JDBC type 2 driver | JDBC Type-2]] (part-[[Java (Sun)|Java]], part native) interface between Java [[Client (computing) | client]]s and Oracle database [[Server (computing) | server]]s.
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 (communication)|interpreter]]" between applications and the low-level database network protocol.
 
==History==
Oracle Corporation also provides an enhanced [[Library (computing) | library]] (for programs written in C++) called the [http://www.oracle.com/technology/tech/oci/occi/index.html '''Oracle ''C++'' Call Interface'''] ('''OCCI'''). The OCCI provides an [[object orientation | object-oriented]] interface with the [[object-relational]] features of the Oracle database.
OCI was released with Oracle Database version 6 in 1988. At that time it was called HLI, the Host Language Interface. As HLI (and subsequently OCI) were wrappers for UPI, their original naming conventions were quite similar to the UPI calls they were based upon. An example is the rollback statement; the call upirol in UPI became orol in OCI.
 
AsLater, Oraclein CorporationOracle8, OCI calls were given better, more descriptive names; orol became OCITransRollback. Subsequent improvements have been made in every version of OCI, including 11g. Oracle [http://www.oracle.com/technology/tech/oci/index.html 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 Corporation|Oracle]], several other vendors have implemented their own libraries compatible with the OCI API. To date, OCI-compatible libraries exist for [[ANTs Data Server]], [[EnterpriseDB]], and the [[Linter SQL RDBMS]].
 
==OCI-based Libraries==
OCI also appears in Oracle environments in the form of Oracle's [[JDBC driver|Type-II JDBC Driver]] (part-Java, part native). Similarly, [[Oracle Corporation|Oracle]] also provides an enhanced [[Library (computing) | library]] (for programs written in [[C++) ]] called the [http://www.oracle.com/technology/tech/oci/occi/index.html '''Oracle ''C++'' Call Interface'''] ('''OCCI'''). The OCCI provides an [[object orientation | object-oriented]] interface with the [[object-relational]] features of the Oracle database.
 
Due to the complexity of the OCI API, several easier-to-use OCI wrapper libraries also exist, such as the open-source [http://www.poitschke.de/libsqlora8/ libsqlora8] library.
 
== External links==