cx_Oracle 4.0

Anthony Tuininga
Wed, 17 Dec 2003 10:09:24 -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?
(it may be a few days before the second site is updated)

What's new?
 1) Added support for subclassing connections, cursors and session
    pools. The changes involved made it necessary to drop support for
    Python 2.1 and earlier although a branch exists in CVS to allow for
    support of Python 2.1 and earlier if needed.
 2) Connections and session pools can now be created with keyword
    parameters, not just sequential parameters.
 3) Queries now return integers whenever possible and long integers if
    the number will overflow a simple integer. Floats are only returned
    when it is known that the number is a floating point nubmer or the
    integer conversion fails.
 4) Added initial support for user callbacks on OCI functions. See the
    documentation for more details.
 5) Add support for retrieving the bind variable names associated with a
    cursor with a new method bindnames().
 6) Add support for temporary LOB variables. This means that
    setinputsizes() can be used with the values CLOB and BLOB to create
    these temporary LOB variables and allow for the equivalent of
    empty_clob() and empty_blob() since otherwise Oracle will treat
    empty strings as NULL values.
 7) Automatically switch to long strings when the data size exceeds the
    maximum string size that Oracle allows (4000 characters) and raise
    an error if an attempt is made to set a string variable to a size
    that it does not support. This avoids truncation errors as reported
    by Jon Franz.
 8) Add support for global (distributed) transactions and two phase
 9) Force the NLS settings for the session so that test tables are
    populated correctly in all circumstances; problems were noted by
    Ralf Braun and Allan Poulsen.
10) Display error messages using the environment handle when the error
    handle has not yet been created; this provides better error messages
    during this rather rare situation.
11) Removed memory leak in callproc() that was reported by Todd
12) Make consistent the calls to manipulate memory; otherwise segfaults
    can occur when the pymalloc option is used, as reported by Matt
13) Force a rollback when a session is released back to the session
    pool. Apparently the connections are not as stateless as Oracle's
    documentation suggests and this makes the logic consistent with
    normal connections.
14) Removed module method attach(). This can be replaced with a call to
    Connection(handle=) if needed.
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