Oracle Driver

It's now easier to build projects that required access to Oracle databases as the Oracle drivers are readily available from Maven Central. Configuring the drivers and UCP in a project built with either Apache Maven or Gradle is a straight forward task. The ODBC Driver for Oracle enables an application to access data in an Oracle database through the ODBC interface. The driver can access local Oracle databases or it can communicate with the network through SQL.Net. The following diagram details this application and driver architecture. The ODBC Driver for Oracle complies with API Conformance Level 1 and SQL Conformance Level Core.

Oracle DriverOracle driver maven dependenciesDriver


  • Easily installed from PyPI.

  • Support for Python 3.6 and higher. Older versions of cx_Oracle may be used with previous Python releases.

  • Support for Oracle Client 11.2, 12, 18, 19 and 21. Oracle's standard cross-version interoperability, allows easy upgrades and connectivity to different Oracle Database versions.

  • Connect to Oracle Database 9.2, 10, 11, 12, 18, 19 or 21 (depending on the Oracle Client version used).

  • SQL and PL/SQL Execution. The underlying Oracle Client libraries have significant optimizations including compressed fetch, pre-fetching, client and server result set caching, and statement caching with auto-tuning.

  • Full use of Oracle Network Service infrastructure, including encrypted network traffic and security features.

  • Extensive Oracle data type support, including large object support (CLOB and BLOB).

  • Direct binding to SQL objects. One great use case is binding Python objects to Oracle Spatial SDO objects.

  • SODA (Simple Oracle Document Access)

  • Array operations for efficient INSERT and UPDATEs.

  • Array row counts and batch error handling for array operations.

  • Fetching of large result sets.

  • REF CURSOR support.

  • Support for scrollable cursors. Go back and forth through your query results.

  • Fetch PL/SQL Implicit Results. Easily return query results from PL/SQL.

  • Row Prefetching. Efficient use of the network.

  • Client Result Caching. Improve performance of frequently executed look-up statements.

  • Support for Advanced Queuing. Use database notifications to build micro-service applications.

  • Continuous Query Notification (CQN). Get notified when data changes.

  • Support for Edition Based Redefinition. Easily switch applications to use updated PL/SQL logic.

  • Support for setting application context during the creation of a connection, making application metadata more accessible to the database, including in LOGON triggers.

  • End-to-end monitoring and tracing.

  • Transaction Management.

  • Session Pooling, with tagging and session state fix-up callback.

  • Database Resident Connection Pooling (DRCP).

  • Privileged Connections.

  • External Authentication.

  • Database startup and shutdown.

  • Sharded Databases.

  • Oracle Database High Availability Features, such as FAN notifications and Transaction Guard support.

Oracle Driver 11g

DB API specification exclusions: The time data type is not supported by Oracle and is therefore not implemented. The method cursor.nextset() is not implemented either as the DB API specification assumes an implementation of cursors that does not fit well with Oracle's implementation of cursors and implicit results. See the method cursor.getimplicitresults() for more information.