[DB-SIG] cx_Oracle 3.0

Anthony Tuininga anthony@computronix.com
10 Mar 2003 16:31:48 -0700

What is 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

Where do I get it?


What's new?

 1) Removed support for connection to Oracle7 databases; it is entirely
    possible that it will still work but I no longer have any way of 
    testing and Oracle has dropped any meaningful support for Oracle7
 2) Fetching of strings is now done with predefined memory areas rather
    than dynamic memory areas; dynamic fetching of strings was causing
    problems with Oracle 9i in some instances and databases using a
    different character set other than US ASCII
 3) Fixed bug where segfault would occur if the '/' character preceded
    the '@' character in a connect string
 4) Added two new cursor methods var() and arrayvar() in order to
    eliminate the need for setinputsizes() when defining PL/SQL arrays
    and as a generic method of acquiring bind variables directly when
 5) Fixed support for binding cursors and added support for fetching
    cursors (these are known as ref cursors in PL/SQL)
 6) Eliminated discrepancy between the array size used internally and
    the array size specified by the interface user; this was done
    earlier to avoid bus errors on 64-bit platforms but another way has
    been found to get around that issue and a number of people were
    getting confused because of the discrepancy
 7) Added support for the attribute "connection" on cursors, an optional
    DB API extension
 8) Added support for passing a dictionary as the second parameter for
    the cursor.execute() method in order to comply with the DB API more
    closely; the method of passing parameters with keyword arguments is
    still supported and is in fact preferred
 9) Added support for the attribute "statement" on cursors which is a
    reference to the last SQL statement prepared or executed
10) Added support for passing any sequence to callproc() rather than
    just lists as before
11) Fixed bug where segfault would occur if the array size was changed
    after the cursor was executed but before it was fetched
12) Ignore array size when performing executemany() and use the length
    of the list of arguments instead
13) Rollback when connection is closed or destroyed to follow DB API
    rather than use the Oracle default (which is commit)
14) Added check for array size too large causing an integer overflow
15) Added support for iterators for Python 2.2 and above
16) Added test suite based on PyUnitTest
17) Added documentation in HTML format similar to the documentation for
    the core Python library

Anthony Tuininga
Distinctive Software. Real People.
Suite 200, 10216 - 124 Street NW
Edmonton, AB, Canada  T5N 4A3
Phone:	(780) 454-3700
Fax:	(780) 454-3838