Oracle Call Interface: Difference between revisions

Content deleted Content added
MartinBot (talk | contribs)
m BOT - rv 203.12.139.103 (talk) to last version by Pedant17
Removing link(s) to "User Programmatic Interface": Removing links to deleted page User Programmatic Interface.
 
(41 intermediate revisions by 29 users not shown)
Line 1:
{{Multiple issues|
In computing, the '''Oracle Call Interface''' '''(OCI)''' consists of a set of low-level APIs ([[Application programming interface]] calls) used to interact with [[Oracle database]]s. Programmers usually write OCI routines in [[C (programming language)|C]] or [[C++]], although almost any [[programming language]] will serve.
{{refimprove|date=January 2014}}
{{notability|date=January 2014}}
}}
 
In computing, the '''Oracle Call Interface''' ('''OCI''') consists of a set of [[C (programming language)|C]]-language [[application programming interface|software APIs]] which provide an interface to the [[Oracle database]].
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.
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.
 
==History==
As Oracle Corporation [http://www.oracle.com/technology/tech/oci/index.html claims]: ''So reliable that every SQL statement in the Oracle Database executes with OCI.''
[[Oracle Corporation]] 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 (data management)|rollback]] statement: the call <code>upirol</code> in UPI became <code>orol</code> in OCI.
 
Later, in Oracle8 (released in 1997), OCI calls acquired more descriptive names; <code>orol</code> became <code>OCITransRollback</code>. 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".<ref>{{cite web |url=http://www.oracle.com/technology/tech/oci/index.html |url-status=dead |archive-url=https://web.archive.org/web/20040906134523/http://www.oracle.com/technology/tech/oci/index.html |archive-date=2004-09-06 |title=Oracle Call Interface}}</ref>
== External links==
* [http://www.orafaq.com/faqoci.htm Oracle Call Interface FAQ]
* [http://www.oracle.com/technology/tech/oci/index.html OCI Technology]
* [http://www-db.stanford.edu/~ullman/fcdb/oracle/or-proc.html Tutorial] by J. Ullman, Stanford DB Faculty]
 
==Implementations==
[[Category:Oracle software]]
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 the ANTs Data Server{{Citation needed|date=September 2010}} (ADS), [[EnterpriseDB]], and the [[Linter SQL RDBMS]]
 
==OCI-based libraries==
[[de:Oracle Call Interface]]
Several libraries are based on top of OCI, including:
 
* Oracle's [[JDBC driver|Type-II JDBC Driver]] (part-Java, part native)
* Oracle Corporation also provides an's enhanced [[C++]] [[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 OCCIwhich provides an [[object orientationObject-orientated programming| object-oriented]] interface with the [[object-relational]] features of the Oracle database.
* Oracle's [[OLEDB|OLE DB]] Driver
* Oracle's [[ODBC]] Driver
* Oracle's [[.NET Framework|.NET]] Data Provider, ODP.NET
* Microsoft's [[ODBC]] Driver for Oracle
* Easysoft's [[ODBC]]-Oracle Driver
* Trolltech's [[Qt (toolkit)|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|OCILIB]] library.
* the [[BSD license|Open BSD licensed]] Oracle Template Library OTL library.
 
==References==
{{Reflist}}
 
== External links ==
* {{Official website|http://www.oracle.com/technetwork/database/features/oci/index-090945.html}}
* [http://www.orafaq.com/faqoci.htmwiki/Oracle_Call_Interfaces Oracle Call Interface FAQ]
* [http://forums.oracle.com/forums/forum.jspa?forumID=67&start=0 Public OCI Support Forum (OTN)]
 
[[Category:Oracle software]]