Open Source Python/Oracle Utility - cx_Oracle
cx_Oracle is a Python extension module that allows access to Oracle and
conforms to the Python database API 2.0 specifications with a few exceptions.
See http://www.python.org/topics/database/DatabaseAPI-2.0.html for more
information on the Python database API specification.
For comments, contact Anthony Tuininga at anthony.tuininga@gmail.com or use the
mailing list at http://lists.sourceforge.net/lists/listinfo/cx-oracle-users
Please note that an Oracle client (or server) installation is required in order
to use cx_Oracle. If you do not require the tools that come with a full client
installation, it is recommended to install the Instant Client which is far
easier to install.
BINARY INSTALL:
Place the file cx_Oracle.pyd or cx_Oracle.so anywhere on your Python path.
SOURCE INSTALL:
This module has been built with Oracle 9.2.0, 10.2.0, 11.1.0 on Linux,
Solaris and Windows. It will likely build on other platforms and other Oracle
versions but I haven't tried them. Use the provided setup.py to build and
install the module which makes use of the distutils module. Note that on
Windows, I have used mingw32 (http://www.mingw.org) and the module will not
build with MSVC without modification. The commands required to build and
install the module are as follows:
python setup.py build
python setup.py install
USAGE EXAMPLE:
import cx_Oracle
# connect via SQL*Net string or by each segment in a separate argument
#connection = cx_Oracle.connect("user/password@TNS")
connection = cx_Oracle.connect("user", "password", "TNS")
cursor = connection.cursor()
cursor.arraysize = 50
cursor.execute("""
select Col1, Col2, Col3
from SomeTable
where Col4 = :arg_1
and Col5 between :arg_2 and :arg_3""",
arg_1 = "VALUE",
arg_2 = 5,
arg_3 = 15)
for column_1, column_2, column_3 in cursor.fetchall():
print "Values:", column_1, column_2, column_3
For more examples, please see the test suite in the test directory and the
samples in the samples directory. You can also look at the scripts in the
cx_OracleTools (http://cx-oracletools.sourceforge.net) and the modules in the
cx_PyOracleLib (http://cx-pyoraclelib.sourceforge.net) projects.
EXCEPTIONS:
The only exception to the DB API specification is the lack of a nextset()
method which is not supported by Oracle.
Please see the included documentation for additional information.