The Oracle ODBC Driver Release Notes describes these topics.

1.1 Description

The Oracle ODBC Driver enables applications to connect to Oracle database from a Windows client as well as from a UNIX client that use Microsoft Open Database Connectivity (ODBC) API to read from and write to Oracle databases.

The Oracle ODBC Driver distribution kit consists of Dynamic Link Libraries and shared libraries (for UNIX platforms), help file (on UNIX and Windows platforms), a copy of the license and this product description. To use an ODBC enabled application the following software is required in addition to the Oracle ODBC Driver:

  • Oracle Client & Net version 12.2

  • Oracle Database Server

Oracle ODBC Driver complies with ODBC 3.52 specifications.

1.2 New Features

Oracle ODBC Driver new features are described for the following releases.

1.2.1 ODBC Release 21c, Version 21.1

Describes new features for release 21c, version 21.1.

There are no new features for the Oracle ODBC Driver release 21c, version 21.1.

1.2.2 ODBC Release 19c, Version 19.1.0.0.0

Describes new features for release 19c, version 19.1.0.0.0

There are no new features of the Oracle ODBC Driver release 19c, version 19.1.0.0.0 software for the Microsoft Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows 7, Windows 8, Windows 8.1, Windows 10, Linux X86-64 (32-bit, 64-bit), Sun Solaris SPARC64 (32-bit, 64-bit), IBM AIX 5L (32-bit, 64-bit), Sun Solaris X64 (32-bit, 64-bit), HPUX IA64 (32-bit, 64-bit), ZLinux (32-bit, 64-bit) operating systems.

1.2.3 ODBC Release 18c, Version 18.1.0.0.0

Describes new features for release 18c, version 18.1.0.0.0

Features of the Oracle ODBC Driver release 18c, version 18.1.0.0.0 software for the Microsoft Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows 7, Windows 8, Windows 8.1, Windows 10, Linux X86-64 (32-bit, 64-bit), Sun Solaris SPARC64 (32-bit, 64-bit), IBM AIX 5L (32-bit, 64-bit), Sun Solaris X64 (32-bit, 64-bit), HPUX IA64 (32-bit, 64-bit), ZLinux (32-bit, 64-bit) operating systems are described as follows:
  • unixODBC ODBC Driver Manager is upgraded from unixODBC–2.3.2 to unixODBC–2.3.4.

1.2.4 ODBC 12.2.0.1.0

Describes new features for release 12.2.0.1.0.

Features of the Oracle ODBC Driver release 12.2.0.1.0 software for the Microsoft Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows 7, Windows 8, Windows 8.1, Windows 10, Linux X86-64 (32-bit, 64-bit), Sun Solaris SPARC64 (32-bit, 64-bit), IBM AIX 5L (32-bit, 64-bit), Sun Solaris X64 (32-bit, 64-bit), HPUX IA64 (32-bit, 64-bit), ZLinux (32-bit, 64-bit) operating systems are described as follows:
  • Support is added for long identifiers up to 128 bytes.

  • Support is added for time stamp with time zone and time stamp with local time zone.

    This features does not require changes to the existing ODBC application where ODBC TIMESTAMP data type is used. If an existing application uses ODBC TIMESTAMP data type and the database column is TIMESTAMP, the current behavior is preserved.

    For database column TIMESTAMP WITH TIMEZONE or TIMESTAMP WITH LOCAL TIMEZONE, the time component in the ODBC TIMESTAMP_STRUCT is in the user’s session time zone. This behavior is transparent to the user’s application, requiring no change to the ODBC application.

1.3 Functionality

The Oracle ODBC Driver complies with Version 3.52 of the Microsoft ODBC specification.

1.4 Software Required

Oracle ODBC driver was certified against the currently supported Windows and UNIX operating system versions, the most current release of Oracle Net Client and Oracle Universal Installer shipping with Oracle Database.

Oracle ODBC driver was certified against:

  • Windows operating system versions: Windows Server 2008, Windows Server 2008 R2, Windows 7,Windows 8, and Windows Server 2012

  • UNIX operating system versions: 32-bit and 64-bit ports of Linux X86-64, AIX5L, Solaris.Sparc64, Solaris X64, HPUX.IA64, and ZLinux

Oracle Net Client 12.2

Oracle Universal Installer shipping with Oracle Database 12.2

1.5 Server Software Requirements

Oracle Database Server 10.2 or later is the server software required to support ODBC enabled applications through the Oracle ODBC Driver.

1.6 Hardware Required

What are the requirements for Oracle ODBC Driver system configuration for Windows and UNIX platforms?

The Oracle ODBC Driver requires a system configuration supported by certified Windows platforms as mentioned in Software Required and on few UNIX platforms as documented in Oracle ODBC Driver for UNIX Platforms Readme.

1.7 Testing Matrix

The following table summarizes the Windows operating system versions on which ODBC driver was certified.

Table 1-1 Oracle ODBC Driver Is Certified on Windows Operating Systems

Driver Version Database Version Operating Systems

12.2.0.1

As Supported by OCI

See Software Required.

1.8 More Information

To learn more about post-installation tasks, known software problems for Oracle ODBC Driver, information about ODBC Driver for UNIX platforms, software problems fixed, and the certification matrix on UNIX platforms, see the topics that follow.

1.8.1 Post-Installation

You must configure the data sources on Windows and on UNIX platforms.

Use the Microsoft ODBC Administrator to configure your Oracle ODBC Driver data sources on Windows. See the information about configuring the data source in Oracle Database Development Guide for more information.

For the UNIX Client, see ODBC Driver For UNIX Platforms.

1.8.2 Known Software Problems for Oracle ODBC Driver

Learn about known software problems and unsupported usage.

  • The SQLSetStmtOption SQL_QUERY_TIMEOUT does not work if the database server is running on Windows NT. As a workaround, setting BREAK_POLL_SKIP=1 in the server's sqlnet.ora file solves the problem. By default, this is set to 100, and the database would not check for a time out set by the ODBC application.

  • SQLBindParameter when used to bind a buffer as SQL_PARAM_INPUT_OUTPUT and having a PL/SQL procedure with IN OUT parameter and if the parameter is not changed in the procedure, then the driver will not return SQL_NULL_DATA in StrLen_or_IndPtr.

  • Oracle ODBC driver does not support the usage of Keyset cursors with the CASE clause in a SQL SELECT query.

1.8.3 ODBC Driver For UNIX Platforms

Oracle ODBC Driver for UNIX platforms complies with ODBC 3.52 specifications. It is based on features of Oracle 12.2 client.

See the Certification Matrix, to learn more about the platforms on which Oracle ODBC Driver 12.2 is supported.

This section describes the following topics.

1.8.3.1 Pre-installation Task – Install ODBC DM from unixODBC.org

Complete this pre-installation task before installing the ODBC Driver for UNIX platforms.

Please install ODBC Driver Manager after downloading .tar file from http://www.unixodbc.org/.

1.8.3.2 Post-installation Task

Complete these post-installation tasks.

  • Configure Oracle ODBC driver on UNIX platforms.

    You can configure Oracle ODBC Driver by running install-home/odbc/utl/odbc_update_ini.sh.

    The utility odbc_update_ini.sh takes four command-line arguments:

    • arg-1 : Complete path where unixODBC DM has been installed.

    • arg-2 : Complete path of driver install location (optional); if this argument is not passed, the driver path is set to the directory from where the utility is run.

    • arg-3 : Driver name (optional); if this argument is not passed, driver name is set to Oracle 12c ODBC driver.

    • arg-4 : Data Source Name (optional); if no value is passed, DSN is set to OracleODBC-12c.

  • Update and verify values of environment variables such as: PATH, LD_LIBRARY_PATH, LIBPATH, and TNS_ADMIN.

1.8.3.3 Uninstalling ODBC Driver

Complete these tasks to uninstall the Oracle ODBC Driver from UNIX platforms.

  • Update ~/.odbc.ini file:

    • Remove the DSN entry (for example, OracleODBC-12c) from [ODBC Data Sources].

    • Remove the complete DSN information for the corresponding DSN.

  • Update ODBCDM_HOME/etc/odbcinst.ini file:

    • Remove the driver information for Oracle 12c ODBC driver.

  • Remove Oracle ODBC driver for UNIX platforms

    • Delete libsqora.so.12.1

  • Reset environment variables such as: PATH, LD_LIBRARY_PATH, LIBPATH, and TNS_ADMIN.

1.8.3.4 Bugs Fixed

Follow the link to software problems fixed.

See Software Problems Fixed.

1.8.3.5 Certification Matrix

Oracle has certified Oracle ODBC Driver for release 12.2 against DM 2.3.1 on the listed UNIX platforms.

These UNIX platforms are shown in Table 1-2. On 64bit UNIX platforms, DM 2.3.1 is built with the -DBUILD_REAL_64_BIT_MODE -DSIZEOF_LONG=8 -fshort-wchar flags and then certified.

Table 1-2 Certification Matrix for Oracle ODBC Driver on UNIX Platforms

Platform 32-bit/64-bit UnixODBC DM version

Linux x86-64

32-bit, 64-bit

2.3.1

Solaris SPARC64

32-bit, 64-bit

2.3.1

AIX5L

32-bit, 64-bit

2.3.1

Solaris x64

32-bit, 64-bit

2.3.1

HPUX.IA64

32-bit, 64-bit

2.3.1

ZLinux

32-bit, 64-bit

2.3.1

See the Installation guide of each platform to learn more about each operating system and Oracle Client software requirements.

1.8.4 Software Problems Fixed

Software problems fixed are shown by version.

Most of the software bug fixes are generic in nature though some may have been discovered on a particular platform. There could be a small number of platform specific software bug fixes as well. Software bug fixes are described for the following versions.

1.8.4.1 Version 21.1.0.0.0

Lists the problems fixed for version 21.1.0.0.0

  • Using Oracle ODBC Driver 19c, the ORA-01461 error occurs when using bound variables to insert multiple records into a table (Bug 31705178).

  • SQLBindParameter () with a zero buffer length resulted in error ORA-24812 (Bug 31628155).

  • SQLColumns () returned an incorrect data type for some columns when fetched (Bug 31608753).

  • Using SQLPrimaryKeys () with case sensitive table returns the correct primary key (Bug 31449196).

  • The SQL API function SQLRowCount () returns 0 for the MERGE command (Bug 31200057).

  • SQLColumns can fetch the ROWID data type column successfully (Bug 31134284).

  • Inserting a timestamp with a fraction in Oracle ODBC Driver extension syntax resulted in an error (Bug 30920050).

  • SQL connection error #1 State: 25000 Message: [Microsoft][ODBC Driver Manager] Failed to enlist on the calling object's transaction (Bug 30317397).

  • Failure to insert data as NCHAR or NVARCHAR data types using Oracle ODBC Driver 18.0.0.0 resulted in error ORA-01461 (Bug 29833984).

1.8.4.2 Version 19.1.0.0.0

Lists the problems fixed for version 19.1.0.0.0

  • 12.2 UNIX ODBC Driver failed with HY003:1:-1:[ORACLE][ODBC][ORA]ORA-0001 error. (Bug 27684767)

  • Row SELECT operation in Oracle ODBC Driver is slower than DataDirect ODBC Driver. (Bug 27641555)

  • Oracle ODBC raised ORA-3137 [KPOAL8CHECK-3] error, when setting BAM=AllSuccessful and connecting to DB 12.2. (Bug 28250843)

  • Oracle ODBC Driver in 12c failed at TIMESTAMP conversion. (Bug 27132192)

  • Application crashed when executing PL/SQL with LONG literal by ODBC call. (Bug 27743516)

1.8.4.3 Version 18.1.0.0.0

Lists the problems fixed for version 18.1.0.0.0

  • Upgrade unixODBC from 2.3.2 to 2.3.4. (Bug 19179407)

  • ODBC SQLColumns no longer returns an error when passing in an empty string as a column name. (Bug 23637102)

  • ODBC Recordset.Update no longer fails with error ORA-00942 using 12c Oracle ODBC Driver. (Bug 24926081)

  • Setting DBA=R in DSN now works when connecting to Exadata Express Cloud. (Bug 25376850)

  • OdbcConnection.GetSchema no longer throws a SYSTEM.ACCESSVIOLATIONEXCEPTION error. (Bug 25597467)

  • ODBC Driver no longer crashes when SQL_DESC_BIND_OFFSET_PTR is set. (Bug 25832115)

  • ODBC SQL_ATTR_QUERY_TIMEOUT now works as expected. (Bug 26352452)

  • Row insert operation in Oracle ODBC is no longer slower than the DataDirect ODBC Driver (Bug 23288642)

  • After migrating an 11gR2 ADO/ODBC application, it no longer causes the wrong result on a recordset operation. (Bug 19000463)

  • ODBC Driver API SQLStatistics now passes the SCHEMANAME value for filtering. (Bug 23259086)

  • ODBC SQLFetch no longer fails with abort (core dumped) error. (Bug 23186348)

  • ODBC SQLFetch no longer returns no data when binding a TIMESTAMP column with SQL_C_CHAR. (Bug 23120325)

1.8.4.4 Version 12.2.0.1.0

Lists the problems fixed for version 12.2.0.1.0.

  • Oracle ODBC driver 12.1.0.2 had a performance degradation that was observed when using the DBMS.DESCRIBE procedure. (Bug 22566981)

  • ODBC Driver now includes the version number in the driver name when OCI_ATTR_DRIVER_NAME is set, such as ODBCCLNT : 12.2.0.1.0. (Bug 21795969)

  • Oracle ODBC driver truncated an output parameter of SP when run from 12.1.0.2. (Bug 21616079)

  • Multi-threaded UNIX ODBC application hung on SSLSSREGHDLR. (Bug 21459317)

  • Oracle ODBC driver now allows a Server name length to 1024 bytes long. (Bug 21379636)

  • Oracle ODBC driver raised an error [ORACLE][ODBC][ORA]ORA-00911 :INVALID CHARACTER(#911). (Bug 21372951)

  • Oracle ODBC driver in 12.2 encountered an ORA:01000 error when statement caching was enabled. (Bug 21255142)

  • Oracle ODBC driver calling a procedure with two out parameters, RAW and DATE failed with an ORA-01483 error. (Bug 20716320

  • Oracle ODBC driver returned an empty message string in the generated exception. (Bug 20517697)

  • Oracle ODBC driver crashed during a call of Oracle functions with return type REFCURSOR. (Bug 20387007)

  • Oracle ODBC driver corrupted data when inserting an image of BLOB type. (Bug 19720146)

  • Oracle ODBC driver SQLColumns() API returned the wrong metadata for the TSLTZ column. (Bug 19573657)

  • Oracle ODBC driver had different TSLTZ outputs when binding with CHAR types. (Bug 19545406)

  • Oracle ODBC driver quit at SQLFETCH() with cursor type SQL_CURSOR_KEYSET_DRIVEN. (Bug 19531841)

  • Oracle ODBC driver quit while fetching from a procedure that returns a REF cursor. (Bug 19530596)

  • Oracle ODBC driver during a SQLFETCH() gave an undefined symbol: M_FMEMALLOC with SQL_C_WCHAR. (Bug 19529966)

  • Oracle ODBC driver during a SQLFETCH() quit when bound with SQL_C_CHAR or SQL_C_BINARY. (Bug 19529718)

  • Oracle ODBC driver crashed when passing more than 4093 characters. (Bug 19524047)

  • Oracle ODBC driver using a stored procedure with NCHAR data type did not execute correctly with ODBC 12.1.0.1. (Bug 19158940)

  • Oracle ODBC driver 12.1.0.1 using a procedure returned NULL. (Bug 19026257)

  • Migrating an Oracle Database 11g Release 2 (11.2) ADO/ODBC application caused the wrong result on a recordset operation. (Bug 19000463)

  • Oracle ODBC driver could not retrieve a CLOB containing CHR(0). (Bug 18749178)

  • Oracle ODBC driver raised a database exception with an INSERT statement with 11.2.0.3 + P30. (Bug 18681683)

  • Oracle ODBC driver got an access violation in Japanese environment when inserting over 64K data into a LONG RAW column. (Bug 18606539)

  • Oracle ODBC driver reported an ORA-01461 error while inserting into NVARCHAR2 columns with the Chinese language. (Bug 18232462)

  • ODBC 12.1 application using a query with comments embedded in them failed with an ORA-24374 error. (Bug 18024745)

  • Oracle ODBC driver did not free a temporary LOB after fetching data from it. (Bug 17928169)

  • A Microsoft Access client hung trying to link a table over a database link. (Bug 17925209)

  • ODBC connection hung in Japanese environment when the CLOB type contained the data of CHR(0). (Bug 17901129)

  • Oracle ODBC driver crashed on ORANLS12. (Bug 17896495)

  • Oracle ODBC driver reported an ORA-1410 error when fetching data from an index organized table using KEYSET_DRIVEN cursor. (Bug 17583959)

  • Oracle ODBC driver using a query returned a truncated value. (Bug 16959397)

  • ODBC application with a SQLFETCH after SQLCOLUMNS resulted in a SUCCESS_WITH_INFO message for an invalid view. (Bug 16324625)

  • ODBC application with an array insert of LOBs resulted in the last LOB only being inserted multiple times. (Bug 16235055)

  • Oracle ODBC driver with an ODBC idle connection to Microsoft Access resulted in an ODBC call failed error. (Bug 16181438)

  • Oracle ODBC driver gave an access violation at SQLEXECUTE when setting incorrect binding at TIMESTAMP. (Bug 16009315)

  • Oracle ODBC driver after upgrade to 11.2, SQLSETPARAM and SQL_WCHAR (NCHAR) resulted in corruption. (Bug 14623077)

  • Oracle ODBC driver reported an ORA-1843 or ORA–1830 error when inserting a DATE type data the second time. (Bug 14308740)

  • Oracle ODBC driver reported an ORA-22275 error after an error ORA-1, ORA-14400 error during insertion. (Bug 13518550)

  • ODBC application rarely returned an S1004 for a SQLFETCH call in a multithreaded application. (Bug 13044472)

  • Oracle ODBC driver reported an error ORA-00918 for a query with inner join and KEYSET_DRIVEN cursor. (Bug 9642938)

  • Oracle ODBC driver now supports TIMESTAMP WITH LOCAL TIME ZONE data type. (Bug 7533808)

  • Oracle ODBC driver quit when using SQLPREPARE with an invalid SQL statement. (Bug 7325015)

1.9 Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.