# Oracle Call Interface

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Oracle_Call_Interface
> Markdown URL: https://mediated.wiki/source/Oracle_Call_Interface.md
> Source: https://en.wikipedia.org/wiki/Oracle_Call_Interface
> Source revision: 1329263577
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Oracle Call Interface" – news · newspapers · books · scholar · JSTOR (January 2014) (Learn how and when to remove this message) The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted. Find sources: "Oracle Call Interface" – news · newspapers · books · scholar · JSTOR (January 2014) (Learn how and when to remove this message) (Learn how and when to remove this message)

The **Oracle Call Interface** (**OCI**) consists of a set of [C](/source/C_(programming_language))-language [software APIs](/source/Application_programming_interface) which provide an interface to the [Oracle database](/source/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](/source/PL%2FSQL) or [SQL](/source/SQL) to query, access, and manipulate data. The OCI library, based on Oracle's undocumented User Programmatic Interface (UPI), acts as an "[interpreter](/source/Interpreter_(communication))" between applications and the low-level database network protocol.

## History

[Oracle Corporation](/source/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](/source/Rollback_(data_management)) 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".[1]

## Implementations

OCI is so popular that, in addition to [Oracle](/source/Oracle_Corporation), 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](https://en.wikipedia.org/wiki/Wikipedia:Citation_needed)*] (ADS), [EnterpriseDB](/source/EnterpriseDB), and the [Linter SQL RDBMS](/source/Linter_SQL_RDBMS)

## OCI-based libraries

Several libraries are based on top of OCI, including:

- Oracle's [Type-II JDBC Driver](/source/JDBC_driver) (part-Java, part native)

- Oracle's enhanced [C++](/source/C%2B%2B) [library](/source/Library_(computing)), [Oracle C++ Call Interface](/source/Oracle_C%2B%2B_Call_Interface) (OCCI), which provides an [object-oriented](/source/Object-orientated_programming) interface with the [object-relational](/source/Object-relational) features of the Oracle database.

- Oracle's [OLE DB](/source/OLEDB) Driver

- Oracle's [ODBC](/source/ODBC) Driver

- Oracle's [.NET](/source/.NET_Framework) Data Provider, ODP.NET

- Microsoft's [ODBC](/source/ODBC) Driver for Oracle

- Easysoft's [ODBC](/source/ODBC)-Oracle Driver

- Trolltech's [Qt C++ toolkit](/source/Qt_(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](https://en.wikipedia.org/w/index.php?title=Ocilib&action=edit&redlink=1) library.

- the [Open BSD licensed](/source/BSD_license) Oracle Template Library OTL library.

## References

1. **[^](#cite_ref-1)** ["Oracle Call Interface"](https://web.archive.org/web/20040906134523/http://www.oracle.com/technology/tech/oci/index.html). Archived from [the original](http://www.oracle.com/technology/tech/oci/index.html) on 2004-09-06.

## External links

- [Official website](http://www.oracle.com/technetwork/database/features/oci/index-090945.html)

- [Oracle Call Interface FAQ](http://www.orafaq.com/wiki/Oracle_Call_Interfaces)

- [Public OCI Support Forum (OTN)](http://forums.oracle.com/forums/forum.jspa?forumID=67&start=0)

This database software-related article is a stub. You can help Wikipedia by adding missing information.

- [v](https://en.wikipedia.org/wiki/Template:Database-software-stub)
- [t](/source/Template_talk%3ADatabase-software-stub)
- [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Database-software-stub)

---
Adapted from the Wikipedia article [Oracle Call Interface](https://en.wikipedia.org/wiki/Oracle_Call_Interface) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Oracle_Call_Interface?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
