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
- 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.3
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
Oracle Universal Installer shipping with Oracle
11.2
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.3.0
- ODBC driver used
to fail with access vilation in SQLFetchScroll() API.(Bug#9578533)
- ODBC function
SQLSetPos() used to over right 2 bytes after row status buffer when
called with SQL_UPDATE paramter.(Bug#9764806)
- ODBC driver used
to hang/crash under multi threaded environment and also memory leak
during mutliple connect/disconnect.(Bug#9850419)
- ODBC driver used
to return ORA-1461 or access violation when used with SQL_RESET_PARAMS
in SQLFreeStmt() API.(Bug#9903704)
- ODBC driver used
to give ORA-1410 followed by access violation with SELECT statement
where table is created and values are inserted with DB character set as
AL32UTF8.(Bug#10132342)
- ODBC data Source
Administrator never used to show the fully qualified service name in
the drop down box.(Bug#10236704)
- ODBC driver used
to return ORA-1410 after applying 11.2.0.1 Patch 7 against UTF8 Oracle
database.(Bug#10422748)
- ODBC driver used
to crash when row status array is being used.(Bug#11933135)
- ODBC driver used
to result garbeld data if that contains multibyte minus
character.(bug#12704978)
Version
11.2.0.2.0
- ODBC driver used
to abort when SQL Server EXEC statement containing procedure without
parameters is passed and EXECSyntax=T(Bug#8393140)
- ODBC driver used
to return wrong suffix and prefix lengths on 64-bit
environment(Bug#8429289)
- ODBC driver used
to fail during SQLConnect on AIX environment when when DM version is
set to SQL_OV_ODBC2(Bug#8639577)
- ODBC application
used to fail on Unix 64-bit environment when SQLFetchScroll() with bind
type SQL_C_SLONG(Bug#8735155)
- ODBC driver used
to truncate the data when there is multi-byte data in a selected row
with combination of NLS_LENGTH_SEMANTICS=CHAR and AL32UTF8
char set(Bug#8771556)
- ODBC driver used
to crash on Solaris sparc64 while executing the statement(Bug#8775499)
- ODBC driver used
to crash on HPUXIA64 while fetching float/double data(Bug#8974909)
- ODBC Driver used
to hang during transfer of MS access table data to oracle
table(Bug#8984021)
- ODBC driver used
to fail on Windows 64-bit while adding data source using
SQLConfigDataSource() API(Bug#9023338)
- ODBC driver used
to crash on Solaris while dealing with float/double(Bug#9058381)
- ODBC driver used
return incorrect data on big endian environment when application binds
date field to SQL_C_WCHAR(Bug#9070694)
- ODBC driver used
to crash on Unix 64-bit environment when SQLGetConnectAttr() is used
with pointer to unsigned int(Bug#9105601)
- ODBC driver used
to map incorrect size for SQL_C_ULONG, SQL_C_SLONG and SQL_C_LON types
on Unix 64-bit environment(Bug# 9463231)
- Unicode ODBC
application used to fail while SQL execution(Bug# 9743383)
- ODBC Driver Configuration of "ODBC Data Source
Administrator" used to show garbage values in the drop down list for
"TNS Service Name" when TNS_ADMIN value is set in registry
and not as environment variable(Bug# 8796983)
- ODBC Driver used to return no-data-found in
case of SQLROWSET_SIZE is more than remaining rows application returns
no-data-found when SQLROWSET_SIZE is set more than the remaining rows
after first fetch(Bug# 9264668)
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.