Which Easysoft Oracle ODBC driver do I need?
We produce two versions of the Oracle ODBC driver: the Oracle Call Interface (OCI) driver and the Wire Protocol (WP) driver.
Both drivers connect Linux, UNIX, and Windows applications to Oracle 8–23c and XE databases, provide comprehensive support for Oracle data types, and conform to the latest ODBC standard.
However, the drivers differ in the way that they access Oracle. The OCI driver requires Oracle client software (either the Instant Client or standard Oracle Database Client). The WP driver does not require any Oracle client software, because, unlike the OCI driver, it accesses Oracle directly.
Although the WP driver is simpler to deploy in that it is not reliant on the standard or Instant client, you need to be aware of the implications of not using Oracle client software. The following Oracle functionality is dependent on the Oracle client. To take advantage of these features, you therefore need to use the client-based OCI driver:
- Client add-ons such as Oracle Advanced Security, which provides strong authentication, data integrity protection, and data encryption features to protect Oracle data against unauthorised access, tampering, and eavesdropping. (The WP driver can use SSH tunnelling to secure Oracle network traffic, however.)
- Real Application Clusters (RAC), which is an Oracle High Availability feature that enables an Oracle Database Server to span multiple low-cost servers while presenting the appearance of a single, unified database system. Oracle client software is a prerequisite for ODBC access to a RAC database. For example, the mechanism that transparently redirects applications to surviving RAC nodes following the failure of a primary node is dependent on the Oracle client.
- Features built into Oracle Net Services. For example, Transparent Application Failover (TAF) and runtime connection load balancing. TAF enables client applications to automatically reconnect to a database if the original connection fails. Runtime connection load balancing distributes client connections evenly among multiple listeners and instances to ensure that no single component is overloaded.
- Distributed XA transactions. If you are using an application in which transactions interact with multiple databases, use the OCI driver. The OCI driver uses the Oracle XA library to enable an XA Transaction Manager to coordinate a group of related transactions so that all transactions either commit or roll back together.
- OCI performance tuning mechanisms. The OCI driver can set the
OCI_ATTR_PREFETCH_ROWS
orOCI_ATTR_PREFETCH_MEMORY
attributes to optimise query performance by minimising server round trips. The driver can also use statement caching to improve performance by efficiently using prepared cursors on the Oracle server and eliminating repetitive statement parsing. - Oracle connection methods and syntax. The OCI driver can help simplify administration by reading connection settings from net service names defined in
tnsnames.ora
. The driver also supports Oracle's Easy Connect Naming Methods, allowing you to specify Oracle connection information as either an SQL connect URL string or an Oracle Net keyword-value pair.