Cx_Oracle has been upgraded from 7.3 to 8.0 on June 26, 2020 (Japan time). Below is a brief description of the new features and changes in 8.0. There is only a major version upgrade, and it contains major (and I feel) changes. Below, the numbers correspond to the cx_Oracle Release Notes.
The supported Python version is 3.5 or later. If you want to use it with Python2, you need to use 7.3.
cx_Oracle is created using OSS's C language Oracle access driver called ODPI-C. Version 8.0 is built on ODPI-C 4.0.1.
It has been significantly reviewed as follows.
--The system of type constants has been organized as follows. -DB API Type: DB API / dev / peps / pep-0249 /) compliant type -Database Type: The type corresponding to the data type of Oracle Database. The name is different from 7.3 -Database Type Synonym: 7.3 Era type. Deprecated after 8.0 and will be discontinued in the future -Other Type: Types not included above --In 7.3, for some Oralce Database datatypes, the corresponding cx_Oracle datatype constant did not exist. The following is added as a response to the data type that was lacking in 8.0.
A function cx_Oracle.init_oracle_client () has been added to initialize the Oracle Client library.
In 7.3 it was None, but in 8.0 it became UTF-8. The character set specification of the NLS_LANG environment variable is ignored.
Added save (), saveAndGet (), and truncate () methods to the SodaCollection object. Oracle Client 20 or later is required to take advantage of these features.
Added SodaOperation.fetchArraySize () to set the number of SODA document fetches. Oracle Client 19.5 or later is required to take advantage of this feature.
Added Cursor.prefetchrows to prefetch result sets.
We are adding a new mode to avoid the round trip that accompanies the first run of Connection.version to get the database version number. Oracle Client 20 or later is required to take advantage of this feature.
Added support for starting a database using PFILE. Until 7.3, only SPFILE was supported.
Fixed an issue where Cursor.getbatcherrors () would cause a buffer overflow if the offset exceeded 65536.
Changed so that no error occurs when Cursor.lastrowid is executed after executing an INSERT ALL statement.
It mainly incorporates 6 pull requests for code improvements (such as verbose coding improvements).
Python objects bound to boolean variables are now converted to True / False depending on whether they are considered True or False in a Python if statement. Previously, only True was converted to True, and the others were converted to False.
Improve documentation, samples and tests.
Recommended Posts