Oracle ODBC
Driver 11.2
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/ shared libraries (for Unix platforms), Windows help file (for
installations on Windows platforms only), 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 11.2.0.1.0
- Oracle Database Server
Oracle ODBC Driver complies with ODBC 3.52
specifications.
NEW FEATURES
ODBC 11.2.0.1.0
Features
of the Oracle ODBC Driver release 11.2.0.1.0 software for the (RHEL AS 4,5)(RHEL AS 4,5) (32/64 bit)(9,10) 5.2 operating systems are
described as follows:
- Oracle
ODBC driver has been enhanced to prefetch LONG/ LONG RAW data to improve
performance of ODBC applications. To do this the maximum size of LONG data
(MaxLargeData) has to be set in registry on Windows (also need to add the
registry key “MaxLargeData” in the DSN), and in odbc.ini file on Unix
platforms manually. This enhancement has improved the performance of
Oracle ODBC driver up to 10 times, depending on the MaxLargeData size set
by the user. The default value of MaxLargeData is 0. The maximum value for
MaxLargeData that can be set by the user is 64KB (65536 bytes). Even if
the value of MaxLargeData is set to some value greater than 65536, the
data fetched will be 65536 bytes only. If uses has LONG/ LONG RAW data in
database which is greater that 65536 bytes, MaxLargeData should be set to
0 (the default value), which will result in single row fetch and complete
LONG data can be fetched. Incase the user has passed the buffer less than
MaxLargeData size in non-polling mode, the data truncation error will
occur if LONG data size in database is greater than the buffer size.
(Enhancement Request 7006879).
- Oracle
ODBC Driver is now made to support OCIDescribeAny() call (to get metadata)
to improve performance in case of application making heavy calls to small
packaged procedures that return REF CURSORS through option called
"UseOCIDescribeAny" in odbc.ini. To use OCIDescribeAny() on Unix
platforms, set "UseOCIDescribeAny" to "T" (True) in
odbc.ini file and on Windows through registry in DSN. (Enhancement Request
7704827).
ODBC 11.1.0.1.0
- Added support for Disable
RULE Hint. Oracle ODBC Driver now allows user to specify the option to
select whether to use RULE Hint in catalog API’s. The change has been done
to increase the performance of ODBC driver for catalog API’s. The default
value for the option is TRUE which means that RULE Hint will not be used in
catalog API’s by default. (Bug4150034).
- Added support for Bind Number
As Float. By introducing Column Binding for NUMBER Column as FLOAT when
column contains float data speeds up the query execution that uses bind
variables as FLOAT. (Bug4608183).
- Added support for OCI
statement caching feature that provides and manages a cache of statements
for each session. By implementing the support for OCI Statement Caching
option, Oracle ODBC Driver will see the increase in performance where user
have to parse the same statement multiple times in the same connection.
The default value for the statement cache flag is FALSE.
- Changed the behavior of
Result-set cache by saving the un-necessary memory calls to increase the
ODBC Driver Performance.
ODBC
10.2.0.1.0
- Added support for named
parameter, binding parameters by name. Oracle ODBC Driver now allows
application to specify the parameters to a stored procedure by name, in
the procedure call. Named parameters are only to be used in calls to
stored procedures, and not to be used in other SQL statements.
(Bug3617324)
- Changed the behavior of
describing metadata for stored procedures that exist in some package. The
change has been done to increase the performance of ODBC driver for stored
procedure calls. Now if the stored procedure is in some package then the
metadata will be described using PL/SQL procedure. (Bug4030664)
- The support for Oracle ODBC
Driver for Linux and Solaris platforms is introduced in 10.2.0.1 version.
From release 10.2.0.4 ODBC Driver was made available for AIX platform as
well.
ODBC 10.1.0.2.0
- Added
support for NCHAR columns in INSERT/UPDATE statements with parameter
markers. (Bug 2827132) Previously
the driver did not notice that the column was of NCHAR type and failed to
set the proper attribute when binding at the OCI level. As a side effect the SQLDescribeParam
call now returns useful information for parameters in INSERT/UPDATE
statements, though not in other statement types.
- Added
support for LOBs larger then 4gb.
Requires the Oracle Client and Database to both be version Oracle
10g or higher.
- Added
support for new BINARY_FLOAT and BINARY_DOUBLE datatypes in 10g and later
servers.
- Added
support for MONTHNAME and DAYNAME functions in SQL statements.
TESTING MATRIX
The following table summarizes the testing configurations on
Windows XP that the ODBC driver was certified with. The table is not meant to be a complete list of all supported
environments.
Driver Database Operating
Version Version
Systems MDAC
11.2.0.1 As
Supported Windows XP 2.8
by OCI.
For testing matrix for Unix platforms, please refer to
release notes on Oracle ODBC Driver for Unix platforms.
FUNCTIONALITY
The Oracle ODBC Driver complies with Version 3.52 of the
Microsoft ODBC specification.
SOFTWARE SUPPORT
If you would like to receive Oracle Support for your Oracle
ODBC Driver, please call (650) 506-5578 in the US,
or contact your local Oracle Sales office. Please note that Oracle will not
provide support for the Oracle ODBC Driver unless a support contract is in
place.
HARDWARE REQUIRED
The Oracle ODBC Driver requires a system configuration
supported by Windows XP and on few Unix platforms as documented in release
notes.
SOFTWARE REQUIRED
Microsoft Windows XP and for Unix platforms refer to release
notes on Oracle ODBC Driver release for Unix platforms.
Oracle Net Client 11.2.0.1.0
Oracle Universal Installer shipping with Oracle 11.2.0.1.0
SERVER SOFTWARE
REQUIREMENTS
This section lists the server software required to support
ODBC enabled applications through the Oracle ODBC Driver.
Oracle Server 10.2 or higher
MORE INFORMATION
1. Post-Installation
Use the Microsoft(R) ODBC Administrator to configure your
Oracle ODBC Driver data sources on Windows. Refer to the Oracle ODBC driver
help file section entitled Configuring the Data Source. For Unix Client refer
to point-4 below.
2. Data Conversions
The Oracle ODBC Driver follows the Microsoft(R) ODBC 3.00
Software Development Kit (SDK) guidelines for manipulating and displaying real
and double data types. Precision (the maximum number of digits used) of
SQL_DOUBLE and SQL_FLOAT is 15.
If double values are stored in an Oracle database precision
for these data types can be much greater than what ODBC currently supports. The
end result will be the loss of precision. For Example:
A float
data type defined in Oracle with the default precision contains a number such
as:
123.9991029382123
When
converted on the Windows Platform the number will drop precision to
123.999102938212
This loss of precision may have different behavior for different
applications. For Microsoft Access(R), the user is not allowed to update the
data. Microsoft Access(R) thinks the data has changed, because Oracle has the
value 123.9991029382123 and Microsoft Access(R) now has the original but
truncated number 123.99910293821. Microsoft Access(R) cannot update the row
using the 123.99910293821 truncated number as a selection criteria since that
row does not exist in the Oracle database.
Only the original row with 123.9991029382123 exists in the Oracle
database.
In Microsoft Query(R) the display will be incorrect. Lets
take for example the following double precision number to display:
-1.123400000000000E-001
with
Microsoft Query(R) the number is displayed as
-1.123400000000000E-00
Microsoft Query(R) makes a call to SQLColAttributes
returning the display size of 22. The format defined in the ODBC SDK for
display of a double precision data is the following:
Total
22 Length
(a
sign,15 digits,a decimal point,the letter E,a sign and 3 digits)
Our example contains a total string length of 23 with 16
digits instead of the 15 digits for precision. This is why the data is
displayed wrong.
In general to avoid precision problems using ODBC, ensure
that data stored in the Oracle database for a double data type conform to the
specifications described in the Microsoft ODBC Programmer's Reference and SDK
Guide.
3. Known Software
Problems for Oracle ODBC Driver
- 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 server's
sqlnet.ora solves the problem. By default, this is set to 100, and the
database would not check for timeout set by the ODBC application.
- SQLCancel does not work if
you are canceling a statement that is executing on Windows NT database
server.
- 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 driver will not return SQL_NULL_DATA in StrLen_or_IndPtr.
4. ODBC Driver For Unix platforms
Please refer to release notes of Oracle ODBC Driver for Unix
platforms.
5.
Software Problems Fixed
Note: Most of the fixes are generic in nature though may be discovered
on a particular platform. There could be small number of platform specific
fixes as well.
Version
11.2.0.1.0
- ODBC Driver used to return
wrong length for SQLBindCol on Solaris (port specific) (Bug 7660125)
- Memory leak was reported
in ODBC driver while retrurning result set from stored procedure. (Bug
7586197)
- ODBC was failing to update
the LONG RAW when size is more than 65536 (Bug 7585970)
- ODBC application used to
fail with NULL password error when MTS is enabled (Bug 7509964)
- ODBC Driver used to return
access violation on executing stored procedure. (Bug 7458976)
- ODBC application used to
hang when more connections are created. (Bug 7388606)
- ODBC application used to
crash when SQLSetParm() is called with string which is non NULL
terminated. (Bug 7011807)
- ODBC Driver used to report
ORA-24817 on querying bulk operation (Bug 6908070)
- ODBC Driver used to return
wrong length and data for SQLGetData() when using NLS character in
literal and with NLS settings as NLS_LENGTH_SEMANTICS= CHAR , NLS_CHARACTERSET
= AL32UTF8. (Bug 6801797)
- ODBC driver used to crash
on 64-bit environments while fetching data. (Bug 6801211)
- ODBC Driver used to show
wrong types when using SQLDescribeParam(), SQLDescribeCol(),
SQLColumns(), SQLGetTypeInfo(). (Bug 6598695)
- ODBC driver used to crash
in SQLGetStmtAttr(). (Bug 6416638)
- ODBC driver used to report
SIGBUS on Solaris SPARC as memory for cache blocks is not aligned. (Bug
6411945)
- ODBC Driver used to return
[ORACLE][ODBC]Memory Allocation Error, while describing meta data for a
procedure. (Bug 6085754)
- ODBC Driver used to report
error on executing procedure after execution of insert statement. (Bug
5961436)
- ODBC Driver used to report
ORA-24374, whenever a SQL Statement is preceded by any valid tokens which
does not give the SQL Statement type. (Bug 5383456)
- ODBC Driver used to return
same error message twice at SQLExecute(). (Bug 5222165)
- ODBC Driver used to return
ORA-24374 when executing query including line comment. (Bug 4743995)
Version
11.1.0.1.0
- ODBC driver used to fail
in updating output parameter of stored procedure incase it contains large
CLOB parameter as input parameter. (Bug5365475).
- ODBC Driver used to do
improper round off for Double data if connecting to 10GB database.
(Bug5389003).
- ODBC driver used to fail
in updating output parameter of stored procedure incase it contains large
CLOB parameter as input parameter.(Bug5365475).
- ODBC driver used to
truncate CLOB data in case of UNICODE characterset of client.
(Bug5220440).
- ODBC driver used to return
old data on requering the data for Read Only connection. (Bug5202103).
- ODBC driver used to report
ora-1008, when MFC application requeries the database. (Bug5147229).
- ODBC driver used to return
wrong value on Fetching a NUMBER Value Which is converted to SQL_C_CHAR.
(Bug5128512).
- ODBC driver used to return
wrong information for few column types. (Bug5015342).
- ODBC driver used to report
ORA-12704 on second invocation of SQLExecute() for NCLOB columns.
(Bug4965677).
- ODBC Driver used to report
crash on exit of ADO/Excel application. (Bug4893583).
- ODBC Driver used to return
0 as the Datatype on Calling SQLBindCol() after SQLColumns().This problem
appears only on solaris platform but the fix is generic. (Bug4880062).
- ODBC Administrator used to
show ODBC entries even after uninstalling the ODBC. (Bug4761792).
- ODBC driver used to
truncate the data retrieved with SQLFetchScroll() call. (Bug4735799).
- ODBC driver used to result
in application crash while
executing stored procedure having large number of parameters.
(Bug4727495).
- DM from UNIXODBC.ORG
reports error: Driver does not support SQLSETSTMTATTR(). This is a port
specific (Linux/Solaris) bug.
(Bug4710548).
- ODBC driver used to report
undefined symbol 'SLEEP' when failover happens. (Bug4698310).
- ODBC Driver used to report
crash on inserting NULL data using bind offsets. (Bug4694220).
- ODBC Driver used to set
the value corresponding to attribute SQL_ATTR_PARAMS_PROCESSED_PTR
improperly in case of stored procedure execution with array binds.
(Bug4690201).
- ODBC Driver used to report
crash when returning an array of Varchars from an stored procedure.
(Bug4690147).
- ODBC Driver use to give in
complete result set incase the stored procedure contains REF CURSOR
arguments. (Bug4624776).
- ODBC driver used to report
error on executing stored procedure containing REF CURSOR parameters. (Bug4622561).
- ODBC Driver used to take
more time for fetching data from a NUMBER column containing FLOAT data.
(Bug4608183).
- ODBC driver used to return
Duplicate results for SQLProcedures() API. (Bug4565416).
- ODBC Driver used to report
memory leak for stored procedure containing REF cursors. (Bug4551675).
- ODBC Driver used to return
ora-1406 when selecting calculated number with large precision from view.
(Bug4546618).
- ODBC driver used to report
crash for executing queries in multithreaded application. (Bug4519067).
- ODBC administrator used to
invoke English ODBC help in Japanese environment. (Bug4506552).
- ODBC driver used to report
error "Input string too long, limit 4096", when the long string
contains CRLF code in the starting (Bug4371966).
- ODBC administrator used to
get failed while opening help file under Instant Client environment.
(Bug4309867).
- ODBC Driver used to return
wrong data for stored procedures having NCLOB as OUT Param. (Bug4235212).
- ODBC catalogue functions
used to take more time to complete. (Bug4150034).
****************************************************************************
For More Information
Contact your Oracle Sales Representative, your Oracle Sales
Office, or call 1-800-ORACLE1. Outside
of the United States please call 650-506-5701.
Copyright Oracle Corporation 2009. All Rights Reserved. Printed in the U.S.A.
This document is
provided for informational purposes only.
No contract is implied or allowed.
Oracle is a registered trademark.
Oracle9 and Oracle Net9 are trademarks of Oracle. Microsoft, Microsoft Access, Microsoft
Query, MS, Windows XP, Windows NT, Windows 2000 and Windows 98 are trademarks
of Microsoft Corporation. PowerBuilder
is a registered trademark of Sybase Inc. All other company and product names
mentioned are used for identification purposes only, and may be trademarks of
their respective owners. Oracle
Corporation World Headquarters is located at 500 Oracle
Parkway, Redwood Shores, CA
94065 U.S.A.