cx_Oracle - Python Interface for Oracle Database

cx_Oracle - Python Interface for Oracle Database

Documentation·Installation.Release Notes.Source code·Mailing list

About cx_Oracle

cx_Oracleis a Python extension module that enables access to Oracle Database. It conforms to the Python database API 2.0specificationwith a considerable number of additions and a couple of exclusions.

cx_Oracle is licensed under a BSD license which you can findhere.

cx_Oracle 6 has been tested with Python version 2.7,and with versions 3.4 and higher. You can use cx_Oracle with Oracle 11.2,12.1 and 12.2 client libraries. Oracle's standard client-server version interoperability allows connection to both older and newer databases. For example Oracle 12.2 client libraries can connect to Oracle Database 11.2 or later.

Features

  • Easily installed from PyPI.

  • Support for Python 2 and 3.

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

  • Connect to Oracle Database 9.2,10,11 or 12 (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.

  • 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. 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.

  • Database Resident Connection Pooling (DRCP).

  • Privileged Connections.

  • External Authentication.

  • Database startup and shutdown.

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

DB API specification exclusions: The time data type is not supported by Oracle and is therefore not implemented. The methodcursor.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 methodcursor.getimplicitresults()for more information.

Installation

Seecx_Oracle Installationfor detailed instructions.

  • The simplest way to install cx_Oracle is with pip:

    python -m pip install cx_Oracle --upgrade

    If a binary wheel package is not available onPyPIfor your platform,the source package will be used.

    Note that if you download a source zip file directly from GitHub then you will also need to download anODPI-Csource zip file and extract it inside the directory called "odpi".

  • After cx_Oracle is installed,Oracle client libraries must also be installed and configured. These can be from Oracle Instant Client,from a local Oracle Database,or from a full Oracle Client installation.

    If you need the libraries,download and unzip theOracle Instant Client'Basic' package for your platform and set PATH,LD_LIBRARY_PATH,or similar platform-specific library path loading environment. See theinstallation notes for ODPI-Cfor help.

    Versions 11.2,12.1 and 12.2 of the Oracle Client libraries on Linux,Windows and macOS are supported. Users have also reported success with other platforms.

If you require cx_Oracle 5.3,download a Windows installer fromPyPIor usepython -m pip install cx-oracle==5.3to install from source.

Very old versions of cx_Oracle can be found in the files section atSourceforge.

Example

from __future__ import print_function

    import cx_Oracle

    connection = cx_Oracle.connect("hr","welcome","localhost/orclpdb")

    cursor = connection.cursor()
    cursor.execute("""
	    SELECT first_name,last_name
	    FROM employees
	    WHERE department_id = :did AND employee_id > :eid""",did = 50,eid = 190)
    for fname,lname in cursor:
	print("Values:",fname,lname)

For more examples,please see thesamplesand thetest suite. You can also look at the scripts incx_OracleToolsand the modules incx_PyOracleLib.

Documentation

See thecx_Oracle DocumentationandRelease Notes.

Help

Issues and questions can be raised with the cx_Oracle community onGitHubor on themailing list.

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...