python-oracledb is a Python programming language extension module allowing Python programs to connect to Oracle Database. Python-oracledb is the new name for Oracle's popular cx_Oracle driver.
The module conforms to the Python Database API 2.0 specification with a considerable number of additions and a couple of minor exclusions, see the feature list.
Synchronous and concurrent coding styles are supported.
Run python -m pip install oracledb
See python-oracledb Installation.
-
Python versions 3.8 through 3.13.
Prebuilt packages are available for these Python versions on Windows, on macOS and on Linux.
Source code is also available.
-
Oracle Client libraries are optional.
Thin mode: By default python-oracledb runs in a 'Thin' mode which connects directly to Oracle Database.
Thick mode: Some advanced Oracle Database functionality is currently only available when optional Oracle Client libraries are loaded by python-oracledb. Libraries are available in the free Oracle Instant Client packages. Python-oracledb can use Oracle Client libraries 11.2 through 21c.
-
Oracle Database
Thin mode: Oracle Database 12.1 (or later) is required.
Thick mode: Oracle Database 9.2 (or later) is required, depending on the Oracle Client library version. Oracle Database's standard client-server version interoperability allows connection to both older and newer databases. For example when python-oracledb uses Oracle Client 19c libraries, then it can connect to Oracle Database 11.2 or later.
See the python-oracledb Documentation and Release Notes.
Examples can be found in the /samples directory and the Python and Oracle Database Tutorial.
Questions can be asked in Github Discussions.
Problem reports can be raised in GitHub Issues.
See /tests
This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide.
Please consult the security guide for our responsible security vulnerability disclosure process.
See LICENSE, THIRD_PARTY_LICENSES, and NOTICE.