To enable statement caching, select the Enable Statement Caching check box and, in the Statement Cache Size field, specify the number of statements to cache. To set the buffer size that the driver uses for data retrieval, in the Fetch Buffer Size field, type the size of the buffer in bytes. Oracle ODBC driver use to return wrong columnssize and bufferlength values through SQLColumns APIs for CHAR columns. (Bug 9414079) Oracle ODBC driver use to return SQLNODATAFOUND when SQLROWSETSIZE was set to more than the remaining rows. (Bug 9264668) Oracle ODBC driver use to hang when transferring Microsoft Access table data to.
- Microsoft Odbc For Oracle Driver
- Oracle Odbc Driver Download
- Oracle Odbc Driver Configuration Fetch Buffer Size Error
Figure 21-3 Oracle ODBC Driver Configuration Dialog Box The following list is an explanation of the main setup options and fields found on the Oracle ODBC Driver Configuration dialog box shown in the preceding graphic. The ODBC Driver disregards Fetch Buffer Size and prefetches a set number of rows only in the presence of the LONG and LOB. Jan 09, 2019 To create a new Oracle ODBC Data Source, open Control Panel Administrative Tools ODBC Data Sources (32bit). If you are using 64 bit version, choose the ODBC Data Sources (64bit). Click Add to add a new DSN. Select “Oracle in instantclient122” from the list. Click Finish. Next, enter the Oracle ODBC Driver Configuration.
ODBC Driver Release Notes
Release 12.1.0.2.0
E53668-05
February 2017
The Oracle ODBC Driver Release Notes describe the following topics:
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.1
- Oracle Database Server
Oracle ODBC Driver complies with ODBC 3.52 specifications.
New Features
Oracle ODBC Driver new features are described for the following releases:
ODBC 12.1.0.1.0
Features of the Oracle ODBC Driver release 12.1.0.1.0 software for the Microsoft Windows Server 2008, Windows Server 2008 R2, Windows 7,Windows 8, Windows Server 2012,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:
- Oracle ODBC Driver now supports 32 KB data columns with
VARCHAR2
,NVARCHAR2
, andRAW
data. See Oracle Database PL/SQL Packages and Types Reference and Oracle Database SQL Language Reference for information about creating 32 KB columns. - ODBC driver supports the migration of third-party applications to Oracle Databases by using the SQL Translation Framework. This enables non-Oracle database SQL statements to run against Oracle Database. For using this feature with an ODBC application, you must specify the service name, which was created as part of SQL Translation Framework setup, as the
ServerName=
entry in theodbc.ini
file. If you require support for translation of Oracle errors (ORA errors) to your the native database, once your application starts running against Oracle Database, then you must enable theSQLTranslateErrors=T
entry in theodbc.ini
file.See Oracle Database SQL Translation and Migration Guide on 'How to Use SQL Translation Framework' before migrating a third-party ODBC application to Oracle Database. - Oracle ODBC driver now supports executing a stored procedure, which can return implicit results without using
RefCursor
. This support eases any third party ODBC application, which migrated to Oracle and wants to use this same functionality that was provided by their previous vendors.See Oracle Database SQL Translation and Migration Guide for more information about implicit results support by Oracle Database. - Extended support of
SQLColAttribute()
field identifiers to support Oracle Database auto increment feature. You can use this feature by including Oracle ODBC driver specific header filesqora.h
in the application. See Oracle Call Interface Programmer's Guide for more information about auto increment:SQL_COLUMN_AUTO_INCREMENT
Starting from Oracle Database Release 12c Release 1 (12.1), Oracle supports auto increment columns so the Oracle ODBC Driver has extended the same support through the existingSQLColAttribute()
identifierSQL_COLUMN_AUTO_INCREMENT
. This property is read only and returnsSQL_TRUE
if the column is auto increment; otherwise, it returnsSQL_FALSE
.SQL_ORCLATTR_COLUMN_PROP
Starting from Oracle Database Release 12c Release 1 (12.1), Oracle ODBC Driver supports a new driver specific field identifierSQL_ORCLATTR_COLUMN_PROP
, which returns the attributes of the column. This identifier returnsSQLULEN
value, which has all the column properties, shown as follows:
ODBC 11.2.0.1.0
- Oracle ODBC driver has been enhanced to prefetch
LONG
andLONG RAW
data to improve performance of ODBC applications. To do this, the maximum size ofLONG
data (MaxLargeData
) has to be set in registry on Windows (also need to add the registry keyMaxLargeData=
in the DSN), and inodbc.ini
file on UNIX platforms manually. This enhancement has improved the performance of Oracle ODBC driver up to 10 times, depending on theMaxLargeData
size set by the user. The default value ofMaxLargeData
is 0. The maximum value forMaxLargeData
that can be set by the user is 64 KB (65536 bytes). Even if the value ofMaxLargeData
is set to some value greater than 65536, the data fetched will be 65536 bytes only. If a user hasLONG
andLONG 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 the completeLONG
data can be fetched. In case the user has passed the buffer less thanMaxLargeData
size in non-polling mode, the data truncation error will occur ifLONG
data size in the 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 when the application is making heavy calls to small packaged procedures that returnREF CURSORS
through the option calledUseOCIDescribeAny
inodbc.ini
. To useOCIDescribeAny()
on UNIX platforms, setUseOCIDescribeAny
toT
(True
) inodbc.ini
file, and on Windows through the 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 APIs. The change has been done to increase the performance of ODBC driver for catalog APIs. The default value for the option is
TRUE
which means that RULE Hint will not be used in catalog APIs by default. (Bug4150034). - Added support for Bind Number As
FLOAT
. By introducing Column Binding forNUMBER
Column asFLOAT
when the column containsFLOAT
data speeds up the query execution that uses bind variables asFLOAT
. (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 users 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 unnecessary 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 a PL/SQL procedure. (Bug4030664)
- The support for Oracle ODBC Driver for Linux and Solaris platforms is introduced in release 10.2.0.1. From release 10.2.0.4 ODBC Driver was made available for the AIX platform as well.
ODBC 10.1.0.2.0
- Added support for
NCHAR
columns inINSERT
/UPDATE
statements with parameter markers, (Bug 2827132). Previously, the driver did not notice that the column was ofNCHAR
type and failed to set the proper attribute when binding at the OCI level. As a side effect, theSQLDescribeParam
call now returns useful information for parameters inINSERT
/UPDATE
statements, though not in other statement types. - Added support for LOBs larger then 4 GB. Requires the Oracle Client and Database to both be Oracle Database 10g (10.1) or later.
- Added support for the new
BINARY_FLOAT
andBINARY_DOUBLE
data types in Oracle Database 10g and later servers. - Added support for
MONTHNAME
andDAYNAME
functions in SQL statements.
Functionality
The Oracle ODBC Driver complies with Version 3.52 of the Microsoft ODBC specification.
Software Required
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.1
Oracle Universal Installer shipping with Oracle Database 12.1
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.
Hardware Required
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.
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.1.0.2 | As Supported by OCI | See Software Required. |
![Driver Driver](/uploads/1/1/9/6/119679576/536456903.gif)
More Information
The sections that follow describe more information about the Oracle ODBC Driver:
Post-Installation
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.
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, settingBREAK_POLL_SKIP=1
in the server'ssqlnet.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 use to bind a buffer asSQL_PARAM_INPUT_OUTPUT
and having a PL/SQL procedure withIN OUT
parameter and if the parameter is not changed in the procedure, then the driver will not returnSQL_NULL_DATA
inStrLen_or_IndPtr
.- Oracle ODBC driver does not support the usage of
Keyset
cursors with theCASE
clause in a SQLSELECT
query.
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.1 client. See the Certification Matrix, to learn more about the platforms on which Oracle ODBC Driver 12.1 is supported.
Pre-installation Task – Install ODBC DM from unixODBC.org
Please install ODBC Driver Manager after downloading
.tar
file from http://www.unixodbc.org/
.Post-installation Task
- Configure Oracle ODBC driver on UNIX platforms.You can configure Oracle ODBC Driver by running
install-home
/odbc/utl/odbc_update_ini.sh
.The utilityodbc_update_ini.sh
takes four command-line arguments:arg-1
: Complete path whereunixODBC 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 toOracle 12c ODBC driver
.arg-4
: Data Source Name (optional); if no value is passed, DSN is set toOracleODBC-12c
.
- Update and verify values of environment variables such as:
PATH
,LD_LIBRARY_PATH
,LIBPATH
, andTNS_ADMIN
.
Uninstalling ODBC Driver
- 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
, andTNS_ADMIN
.
Bugs Fixed
Certification Matrix
Oracle has certified Oracle ODBC Driver for release 12.1 against DM 2.3.1 on the following UNIX platforms 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.
Software Problems Fixed
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:
Version 12.1.0.2.0
- Array insert of type LOB resulted in inserting the last element into all the rows. (Bug 16491814)
- ODBC application use to throw
ORA-00918: column ambiguously defined
error when join and multiple tables were used in a query with aKEYSET_DRIVEN
cursor. (Bug 9642938) - Oracle ODBC driver use to result in ODBC call failed error when the ODBC driver tried to reconnect to Oracle Database after Microsoft Access connection timed out. (Bug 16181438)
- Oracle ODBC driver use to give access violation at
SQLExecute
when setting an incorrect bind parameter value forTIMESTAMP
database column. (Bug 16009315) - Oracle ODBC driver use to return string truncation error
S1004
when a multithreaded application having common ENV handle across all threads usesSQL_C_TCHAR
C data type as the buffer type inSQLBindCol
whenNLS_LANG
isJA16SJISTILDE
. (Bug 13044472) - Data truncation with MSADSQL and ATL library where applications rely on precision and scale field in
SQL_NUMERIC_STRUCT
. (Bug 16959397) - Crash is due to array bind when the array bind is done a number of times. (Bug 17896495)
- Temporary lob not free after data is fetched. (Bug 17928169)
- When fetching data from index organized table using
KEYSET-DRIVEN
cursor, it results inORA-01410
error. (Bug 17583959)
Version 12.1.0.1.0
- Oracle ODBC driver use to give
ORA-1410
followed by access violation withSELECT
statement where the table is created and values are inserted with database character set asAL32UTF8
. (Bug 10132342) - Oracle ODBC driver use to return
ORA-1002
when the ODBC application executes and fetches a huge number of rows the second time, but does not reprepare and bind the column the second time. (Bug 10131881) - Oracle ODBC driver use to throw
ORA-932
on inserting a record view MFC Recordset. (Bug 9952132) - Oracle ODBC driver use to return
ORA-1461
or access violation when used withSQL_RESET_PARAMS
inSQLFreeStmt()
API. (Bug 9903704) - Oracle ODBC function
SQLSetPos()
use to overwrite 2 bytes after the row status buffer is called with theSQL_UPDATE
parameter. (Bug 9764806) - Oracle ODBC driver never use to time out when
SQL_ATTR_QUERY_TIMEOUT
statement option is set to a non-zero value on UNIX platforms. (Bug 9714490) - Oracle ODBC driver use to return
ORA-1406
when an application with client side character set asAL32UTF8
was trying to read data from single byte character set database. (Bug 8927110) - Oracle ODBC driver use to return
ORA-1410
after applying the 11.2.0.1 Patch 7 against aUTF8
Oracle database. (Bug 10422748) - ODBC data Source Administrator never use to show the fully qualified service name in the drop down box. (Bug 10236704)
- Oracle ODBC driver use to fail when the
CREATE PROCEDURE
statement has the wide characterr
. (Bug 14458246) - Oracle ODBC driver use to throw pop up window of change-password repeatedly when database password expired. (Bug 10353128)
- ODBC driver use to hang and/or crash under a multithreaded environment and when there was a memory leak during multiple connects and disconnects. (Bug 9850419)
SQLGetData()
API of Oracle ODBC driver use to consume more time during scalability of threads versus processes. The threaded version of the application use to take more time than the process version. (Bug 9835629)- Oracle ODBC driver use to fail with access violation in
SQLFetchScroll()
API with theSQL_FETCH_NEXT
option. (Bug 9578533) - Oracle ODBC driver use to return wrong
columns_size
andbuffer_length
values throughSQLColumns()
APIs forCHAR
columns. (Bug 9414079) - Oracle ODBC driver use to return
SQL_NO_DATA_FOUND
whenSQL_ROWSET_SIZE
was set to more than the remaining rows. (Bug 9264668) - Oracle ODBC driver use to hang when transferring Microsoft Access table data to Oracle table. (Bug 8984021)
- Oracle ODBC driver use to truncate returned data when there were more characters with multibyte in a selected row, with
NLS_LENGTH_SEMANTICS=CHAR
andAL32UTF8
database character set. (Bug 8771556)
Version 11.2.0.2.0
- ODBC driver use to abort when a SQL Server
EXEC
statement containing procedure without parameters is passed andEXECSyntax=T
. (Bug 8393140) - ODBC driver use to return wrong suffix and prefix lengths on 64-bit environment. (Bug 8429289)
- ODBC driver use to fail during
SQLConnect
on AIX environment when DM version is set toSQL_OV_ODBC2
. (Bug 8639577) - ODBC application use to fail on UNIX 64-bit environment when
SQLFetchScroll()
with bind typeSQL_C_SLONG
. (Bug 8735155) - ODBC driver use to truncate the data when there is multi-byte data in a selected row with combination of
NLS_LENGTH_SEMANTICS=CHAR
andAL32UTF8
character set. (Bug 8771556) - ODBC driver use to crash on Solaris sparc64 while executing the statement. (Bug 8775499)
- ODBC driver use to crash on HPUXIA64 while fetching
FLOAT
/DOUBLE
data. (Bug 8974909) - ODBC Driver use to hang during transfer of Microsoft Access table data to Oracle table. (Bug 8984021)
- ODBC driver use to fail on Windows 64-bit while adding data source using
SQLConfigDataSource()
API. (Bug 9023338) - ODBC driver use 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 use to crash on UNIX 64-bit environment when
SQLGetConnectAttr()
is used with pointer toUNSIGNED INT
. (Bug 9105601) - ODBC driver use to map incorrect size for
SQL_C_ULONG
,SQL_C_SLONG
, andSQL_C_LONG
types on UNIX 64-bit environment. (Bug 9463231) - Unicode ODBC application use to fail while SQL execution. (Bug 9743383)
- ODBC Driver Configuration of 'ODBC Data Source Administrator' use to show garbage values in the drop down list for
TNS Service Name
whenTNS_ADMIN
value is set in registry and not as environment variable. (Bug 8796983) - ODBC Driver use to return no-data-found in case of
SQLROWSET_SIZE
is more than remaining rows application returns no-data-found whenSQLROWSET_SIZE
is set more than the remaining rows after first fetch. (Bug 9264668)
Version 11.2.0.1.0
- ODBC Driver use to return the wrong length for
SQLBindCol
on Solaris (port specific). (Bug 7660125) - Memory leak was reported in the ODBC driver while returning a result set from a stored procedure. (Bug 7586197)
- ODBC was failing to update the
LONG RAW
when the size was more than 65536 bytes. (Bug 7585970) - ODBC application use to fail with a
NULL
password error when MTS was enabled. (Bug 7509964) - ODBC Driver use to return an access violation on executing a stored procedure. (Bug 7458976)
- ODBC application use to hang when more connections were created. (Bug 7388606)
- ODBC application use to crash when
SQLSetParm()
was called with a string that is nonNULL
terminated. (Bug 7011807) - ODBC Driver use to report an
ORA-24817
error on querying a bulk operation. (Bug 6908070) - ODBC Driver use to return the wrong length and data fora
SQLGetData()
call when using NLS character in literal and with NLS settings asNLS_LENGTH_SEMANTICS= CHAR
,NLS_CHARACTERSET = AL32UTF8
. (Bug 6801797) - ODBC driver use to crash on 64-bit environments while fetching data. (Bug 6801211)
- ODBC Driver use to show the wrong types when using calls
SQLDescribeParam()
,SQLDescribeCol()
,SQLColumns()
,SQLGetTypeInfo()
. (Bug 6598695) - ODBC driver use to crash with
SQLGetStmtAttr()
call. (Bug 6416638) - ODBC driver use to report SIGBUS on Solaris SPARC as memory for cache blocks was not aligned. (Bug 6411945)
- ODBC Driver use to return an
[ORACLE][ODBC]Memory Allocation Error
, while describing metadata for a procedure. (Bug 6085754) - ODBC Driver use to report an error on executing a procedure after execution of the
INSERT
statement. (Bug 5961436) - ODBC Driver use to report an
ORA-24374
error whenever a SQL Statement was preceded by any valid tokens that did not give the SQL Statement type. (Bug 5383456) - ODBC Driver use to return the same error message twice with a
SQLExecute()
call. (Bug 5222165) - ODBC Driver use to return an
ORA-24374
error when executing a query that included a line comment. (Bug 4743995)
Version 11.1.0.1.0
- ODBC driver use to fail in updating the output parameter of a stored procedure when it contained a large
CLOB
parameter as the input parameter. (Bug 5365475) - ODBC Driver use to do an improper round off for
DOUBLE
data if connecting to a 10 GB database. (Bug 5389003) - ODBC driver use to fail in updating the output parameter of a stored procedure when it contained a large
CLOB
parameter as an input parameter. (Bug 5365475) - ODBC driver use to truncate
CLOB
data for a clientUNICODE
character set. (Bug 5220440) - ODBC driver use to return old data on requering the data for a read-only connection. (Bug 5202103)
- ODBC driver use to report an
ORA-1008
error, when an MFC application requeries the database. (Bug 5147229) - ODBC driver use to return the wrong value on fetching a
NUMBER
value that is converted toSQL_C_CHAR
. (Bug 5128512) - ODBC driver use to return the wrong information for few column types. (Bug 5015342)
- ODBC driver use to report an
ORA-12704
error on the second invocation of aSQLExecute()
call forNCLOB
columns. (Bug 4965677) - ODBC Driver use to report a crash on exit from an ADO and Excel applications. (Bug 4893583)
- ODBC Driver use to return
0
as the data type on callingSQLBindCol()
afterSQLColumns()
. This problem appears only on the Solaris platform, but the software fix is generic. (Bug 4880062) - ODBC Administrator use to show ODBC entries even after uninstalling the ODBC. (Bug 4761792)
- ODBC driver use to truncate the data retrieved with the
SQLFetchScroll()
call. (Bug 4735799) - ODBC driver use to result in an application crash while executing a stored procedure having a large number of parameters. (Bug 4727495)
- DM from
UNIXODBC.ORG
reportserror: Driver does not support SQLSETSTMTATTR()
. This is a port specific (Linux and Solaris) bug. (Bug 4710548) - ODBC driver use to report an undefined symbol
SLEEP
when fail over happened. (Bug 4698310) - ODBC Driver use to report a crash on inserting
NULL
data using bind offsets. (Bug 4694220) - ODBC Driver use to set the value corresponding to attribute
SQL_ATTR_PARAMS_PROCESSED_PTR
improperly when the stored procedure execution was with array binds. (Bug 4690201) - ODBC Driver use to report a crash when returning an array of
VARCHAR
s from a stored procedure. (Bug 4690147) - ODBC Driver use to give an incomplete result set when the stored procedure contained
REF CURSOR
arguments. (Bug 4624776) - ODBC driver use to report an error on executing a stored procedure containing
REF CURSOR
parameters. (Bug 4622561) - ODBC Driver use to take more time fetching data from a
NUMBER
column containingFLOAT
data. (Bug 4608183) - ODBC driver use to return duplicate results for a
SQLProcedures()
call. (Bug 4565416) - ODBC Driver use to report a memory leak for a stored procedure containing
REF CURSORS
. (Bug 4551675) - ODBC Driver use to return an
ORA-1406
error when selecting a calculated number with a large precision from a view. (Bug 4546618) - ODBC driver use to report a crash for executing queries in a multithreaded application. (Bug 4519067)
- ODBC administrator use to invoke English ODBC help in the Japanese environment. (Bug 4506552)
- ODBC driver use to report the error
Input string too long, limit 4096
, when the long string containedCRLF
code (n
r
) and contained more that 4096 characters after the CRLF characters. (Bug 4371966) - ODBC administrator use to fail while opening the help file under an Instant Client environment. (Bug 4309867)
- ODBC Driver use to return the wrong data for stored procedures having
NCLOB
as theOUT
Param
. (Bug 4235212) - ODBC catalogue functions use to take more time to complete. (Bug 4150034)
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.
Note:
Oracle ODBC Driver is supported only on the Linux x86 and Oracle Solaris on SPARC platforms.This appendix provides information related to using Oracle ODBC Driver. It contains the following sections:
E.1 Features Not Supported
Oracle ODBC Driver does not support the following ODBC 3.0 features:
- Interval data types
SQL_C_UBIGINT
andSQL_C_SBIGINT
C data type identifiers- Shared connections
- Shared environments
- The
SQL_LOGIN_TIMEOUT
attribute of SQLSetConnectAttr - The expired password option
Oracle ODBC Driver does not support the SQL functions listed in the following table:
String Functions | Numeric Functions | Time, Date, and Interval Functions |
---|---|---|
BIT_LENGTH | ACOS | CURRENT_DATE |
CHAR_LENGTH | ASIN | CURRENT_TIME |
CHARACTER_LENGTH | ATAN | CURRENT_TIMESTAMP |
DIFFERENCE | ATAN2 | EXTRACT |
OCTET_LENGTH | COT | TIMESTAMPDIFF |
POSITION | DEGREES RADIANS RAND ROUND |
E.2 Implementation of Data Types
This section discusses the
DATE
, TIMESTAMP
, and floating point data types.DATE and TIMESTAMP
The semantics of Oracle
DATE
and TIMESTAMP
data types do not correspond exactly with the ODBC data types with the same names. The Oracle DATE
data type contains both date and time information. The SQL_DATE
data type contains only date information. The Oracle TIMESTAMP
data type also contains date and time information, but it has greater precision in fractional seconds. Oracle ODBC Driver reports the data types of both Oracle DATE
and TIMESTAMP
columns as SQL_TIMESTAMP
to prevent information loss. Similarly, Oracle ODBC Driver binds SQL_TIMESTAMP
parameters as Oracle TIMESTAMP values.See Also:
'DATE and TIMESTAMP Data Types' for information about the DATE and TIMESTAMP data types related to performance and tuningFloating Point Data Types
When connected to a release 11.1 or later Oracle Database, Oracle ODBC Driver maps the Oracle floating point data types
BINARY_FLOAT
and BINARY_DOUBLE
to the ODBC data types SQL_REAL
and SQL_DOUBLE
, respectively. In earlier releases, SQL_REAL
and SQL_DOUBLE
mapped to the generic Oracle numeric data type.E.3 Limitations on Data Types
Oracle ODBC Driver and Oracle Database impose limitations on data types. The following table describes these limitations:
Limited Data Type | Description |
---|---|
Literals | Oracle Database limits literals in SQL statements to 4000 bytes. |
SQL_LONGVARCHAR and SQL_WLONGVARCHAR | The Oracle limit for SQL_LONGVARCHAR data, where the column type is LONG , is 2,147,483,647 bytes. The Oracle limit for SQL_LONGVARCHAR data, where the column type is CLOB , is 4 gigabytes. The limiting factor is the client workstation memory. |
SQL_LONGVARCHAR and SQL_LONGVARBINARY | Oracle Database permits only a single long data column in each table. The long data types are SQL_LONGVARCHAR (LONG ) and SQL_LONGVARBINARY (LONG RAW ). Oracle recommends that you use CLOB and BLOB columns instead. There is no restriction on the number of CLOB and BLOB columns in a table. |
E.4 Format of the Connection String for the SQLDriverConnect Function
The
SQLDriverConnect
function is one of the functions implemented by Oracle ODBC Driver. The following table describes the keywords that you can include in the connection string argument of the SQLDriverConnect
function call:Keyword | Meaning | Value |
---|---|---|
DSN | ODBC data source name | User-supplied name This is a mandatory keyword. |
DBQ | TNS service name | User-supplied name This is a mandatory keyword. |
UID | User ID or user name | User-supplied name This is a mandatory keyword. |
PWD | Password | User-supplied name Specify PWD=; for an empty password.This is a mandatory keyword. |
DBA | Database attribute | W implies write accessR implies read-only access |
APA | Applications attributes | T implies that thread safety is to be enabledF implies that thread safety is to be disabled |
RST | Result sets | T implies that result sets are to be enabled.F implies that result sets are to be disabled. |
QTO | Query timeout option | T implies that query timeout is to be enabled.F implies that query timeout is to be disabled. |
CSR | Close cursor | T implies that close cursor is to be enabled.F implies that close cursor is to be disabled. |
BAM | Batch autocommit mode | IfAllSuccessful implies commit only if all statements are successful (old behavior).UpToFirstFailure implies commit up to first failing statement. This is ODBC version 7 behavior.AllSuccessful implies commit all successful statements. |
FBS | Fetch buffer size | User-supplied numeric value (specify a value in bytes of 0 or greater).The default is 60,000 bytes. |
FEN | Failover | T implies failover is to be enabled.F implies failover is to be disabled. |
FRC | Failover retry count | User-supplied numeric value. The default is 10. |
FDL | Failover delay | User-supplied numeric value. The default is 10. |
LOB | LOB writes | T implies LOBs are to be enabled.F implies LOBs are to be disabled. |
FWC | Force SQL_WCHAR support | T implies Force SQL_WCHAR is to be enabled.F implies Force SQL_WCHAR is to be disabled. |
EXC | EXEC syntax | T implies EXEC Syntax is to be enabled.F implies EXEC Syntax is to be disabled. |
XSM | Schema field | Default implies that the default value is to be used.Database implies that the Database Name is to be used.Owner implies that the name of the owner is to be used. |
MDI | Set metadata ID default | T implies that the default value of SQL_ATTR_METADATA_ID is SQL_TRUE .F implies that the default value of SQL_ATTR_METADATA_ID is SQL_FALSE . |
DPM | Disable SQLDescribeParam | T implies that SQLDescribeParam is to be disabled.F implies that SQLDescribeParam is to be enabled. |
BTD | Bind TIMESTAMP as DATE | T implies that SQL_TIMESTAMP is to be bound as Oracle DATE .F implies that SQL_TIMESTAMP is to be bound as Oracle TIMESTAMP . |
NUM | Numeric settings | NLS implies that the Globalization Support numeric settings are to be used (to determine the decimal and group separator). |
E.5 Reducing Lock Timeout in a Program
Oracle Database waits indefinitely for lock conflicts between transactions to be resolved. However, you can limit the amount of time that Oracle Database waits for locks to be resolved. To do this, set the
SQL_ATTR_QUERY_TIMEOUT
attribute of the ODBC SQLSetStmtAttr
function while calling this function before connecting to the data source.E.6 Linking ODBC Applications
When you link the program, you must link it with the Driver Manager library,
libodbc.so
.E.7 Obtaining Information About ROWIDs
The ODBC
SQLSpecialColumns
function returns information about the columns in a table. When used with Oracle ODBC Driver, it returns information about the Oracle ROWIDs associated with an Oracle table.E.8 ROWIDs in a WHERE Clause
ROWIDs may be used in the
WHERE
clause of an SQL statement. However, the ROWID value must be presented in a parameter marker.E.9 Enabling Result Sets
Oracle reference cursors, also known as result sets, enable an application to retrieve data using stored procedures and stored functions. The following information describes how to use reference cursors to enable result sets through ODBC:
- You must use the ODBC syntax for calling stored procedures. Native PL/SQL is not supported through ODBC. The following code sample identifies how to call the procedure or function without a package and within a package. The package name in this case is
RSET
. - The PL/SQL reference cursor parameters are omitted when calling the procedure. For example, assume procedure
Example2
is defined to have four parameters. Parameters 1 and 3 are reference cursor parameters and parameters 2 and 4 are character strings. The call is specified as:
The following sample application shows how to return a result set by using Oracle ODBC Driver:
E.10 Enabling EXEC Syntax
If the syntax of the SQL Server
EXEC
statement can be readily translated to an equivalent Oracle procedure call without requiring any change to it, then Oracle ODBC Driver can translate it if you enable this option.The complete name of a SQL Server procedure consists of up to four identifiers:
- Server name
- Database name
- Owner name
- Procedure name
The format for the name is:
During the migration of Microsoft SQL Server database to Oracle Database, the definition of each SQL Server procedure or function is converted to its equivalent Oracle Database syntax and is defined in a schema in Oracle Database. Migrated procedures are often reorganized (and created in schemas) in one of the following ways:
- All procedures are migrated to one schema (the default option).
- All procedures defined in one SQL Server database are migrated to the schema named with that database name.
- All procedures owned by one user are migrated to the schema named with that user's name.
To support these three ways of organizing migrated procedures, you can specify one of these schema name options for translating procedure names. Object names in the translated Oracle procedure call are not case-sensitive.
E.11 Supported Functionality
This sections provides information about the functionality supported by Oracle ODBC Driver. It contains the following sections:
E.11.1 API Conformance
Oracle ODBC Driver release 10.2.0.1.0 and higher supports all Core, Level 2, and Level1 functions.
E.11.2 Implementation of ODBC API Functions
The following table describes how Oracle ODBC Driver implements specific functions:
Function | Description |
---|---|
SQLConnect | SQLConnect requires only a DBQ , user ID, and password. |
SQLDriverConnect | SQLDriverConnect uses the DSN , DBQ , UID , and PWD keywords. |
SQLSpecialColumns | If SQLSpecialColumns is called with the SQL_BEST_ROWID attribute, then it always returns the ROWID column. |
SQLProcedures and SQLProcedureColumns | Refer to the information in the following row. |
All catalog functions | If the SQL_ATTR_METADATA_ID statement attribute is set to SQL_TRUE , then a string argument is treated as an identifier argument, and its case is not significant. In this case, the underscore (_) and the percent sign (%) are treated as the actual character, and not as a search pattern character. In contrast, if this attribute is set to SQL_FALSE , then it is either an ordinary argument or a pattern value argument and is treated literally, and its case is significant. |
SQLProcedures and SQLProcedureColumns
The
SQLProcedures
and SQLProcedureColumns
calls have been modified to locate and return information about all procedures and functions even if they are contained within a package. In earlier releases, the calls only found procedures and functions that were outside of packages. The following examples and scenarios show what procedures or functions are returned if the SQL_ATTR_METADATA_ID
attribute is set to SQL_FALSE
.Suppose that you have the following stored procedures:
When you look for
%
or %%%%%%
, you get all eight procedures.When you look for
%_
or _%
, you get the following:When you look for
.
or .%
or %.%
or SQLPROC%.
or SQLPROC%.%
, you get the following:When you look for
%BAR
, you get the following:When you look for
.%BAR
or %.%BAR
, you get the following:When you look for
SQLPROC%
or .SQLPROC%
, you get the following:E.11.3 Implementation of the ODBC SQL Syntax
If a comparison predicate has a parameter marker as the second expression in the comparison and the value of that parameter is set to
SQL_NULL_DATA
with SQLBindParameter
, then the comparison fails. This is consistent with the null predicate syntax in ODBC SQL.E.11.4 Implementation of Data Types
For programmers, the most important part of the implementation of the data types concerns the
CHAR
, VARCHAR
, and VARCHAR2
data types.For an
fSqlType
value of SQL_VARCHAR
, SQLGetTypeInfo
returns the Oracle Database data type VARCHAR2
. For an fSqlType
value of SQL_CHAR
, SQLGetTypeInfo
returns the Oracle Database data type CHAR
.E.12 Unicode Support
This section provide information about Unicode support. It contains the following topics:
E.12.1 Unicode Support Within the ODBC Environment
ODBC Driver Manager makes all ODBC drivers, regardless of whether or not they support Unicode, appear as if they are Unicode compliant. This allows ODBC applications to be written independent of the Unicode capabilities of underlying ODBC drivers.
The extent to which the Driver Manager can emulate Unicode support for ANSI ODBC drivers is limited by the conversions possible between the Unicode data and the local code page. Data loss is possible when the Driver Manager is converting from Unicode to the local code page. Full Unicode support is not possible unless the underlying ODBC driver supports Unicode. Oracle ODBC Driver provides full Unicode support.
E.12.2 Unicode Support in ODBC API
The ODBC API supports both Unicode and ANSI entry points using the
W
and A
suffix convention. An ODBC application developer does not need to explicitly call entry points with the suffix. An ODBC application that is compiled with the UNICODE and _UNICODE preprocessor definitions will generate the appropriate calls. For example, a call to SQLPrepare
will be compiled as SQLPrepareW
.The C data type,
SQL_C_WCHAR
, was added to the ODBC interface to allow applications to specify that an input parameter is encoded as Unicode or to request column data returned as Unicode. The macro SQL_C_TCHAR
is useful for applications that need to be built as both Unicode and ANSI. The SQL_C_TCHAR
macro compiles as SQL_C_WCHAR
for Unicode applications and as SQL_C_CHAR
for ANSI applications.The SQL data types,
SQL_WCHAR
, SQL_WVARCHAR
, and SQL_WLONGVARCHAR
, have been added to the ODBC interface to represent columns defined in a table as Unicode. Potentially, these values are returned from calls to SQLDescribeCol
, SQLColAttribute
, SQLColumns
, and SQLProcedureColumns
.Unicode encoding is supported for SQL column types NCHAR, NVARCHAR2, and NCLOB. In addition, Unicode encoding is also supported for SQL column types CHAR and VARCHAR2 if the character semantics are specified in the column definition.
Oracle ODBC Driver supports these SQL column types and maps them to ODBC SQL data types. The following table lists the supported SQL data types and the equivalent ODBC SQL data type:
SQL Data Types | ODBC SQL Data Types |
---|---|
CHAR | SQL_CHAR or SQL_WCHAR |
VARCHAR2 | SQL_VARCHAR or SQL_WVARCHAR |
NCHAR | SQL_WCHAR |
NVARCHAR2 | SQL_WVARCHAR |
NCLOB | SQL_WLONGVARCHAR |
E.12.3 SQLGetData Performance
The
SQLGetData
function allows an ODBC application to specify the data type to receive a column as after the data has been fetched. OCI requires Oracle ODBC Driver to specify the data type before it is fetched. In this case, Oracle ODBC Driver uses information about the data type of the column (as defined in the database) to determine how to best default to fetching the column through OCI.If a column that contains character data is not bound by
SQLBindCol
, then Oracle ODBC Driver must determine if it should fetch the column as Unicode or as the local code page. The driver could always default to receiving the column as Unicode. However, this may result in as many as two unnecessary conversions. For example, if the data were encoded in the database as ANSI, then there would be an ANSI to Unicode conversion to fetch the data into Oracle ODBC Driver. If the ODBC application then requested the data as SQL_C_CHAR
, then there would be an additional conversion to revert the data to its original encoding.The default encoding of Oracle Database Client is used when fetching data. However, an ODBC application may overwrite this default and fetch the data as Unicode by binding the column or the parameter as the WCHAR data type.
E.12.4 Unicode Samples
Because Oracle ODBC Driver itself was implemented using
TCHAR
macros, it is recommended that ODBC application programs use TCHAR
in order to take advantage of the driver.The following examples show how to use
TCHAR
, which becomes the WCHAR
data type if you compile with UNICODE
and _UNICODE
:Example E-1 Connection to Database
To use this code, you only need to specify the Unicode literals for
SQLConnect
.Example E-2 Simple Retrieval
The following example retrieves the employee names and the job tiles from the
EMP
table. With the exception that you must specify TCHAR
compliant data to every ODBC function, there is no difference to the ANSI case. If the case is a Unicode application, then you must specify the length of the buffer to the BYTE length when you call SQLBindCol
. For example, sizeof(ename)
.Example E-3 Retrieval Using SQLGetData (Binding After Fetch)
This example shows how to use
SQLGetData
. There is no difference to the ANSI application in terms of Unicode-specific issues.Example E-4 Simple Update
This example shows how to update data. The length of data for
SQLBindParameter
has to be specified with the BYTE length, even in the case of a Unicode application.Example E-5 Update and Retrieval for Long Data (CLOB)
This example may be the most complicated case to update and retrieve data for long data, like
CLOB
, in Oracle Database. Because the length of data should always be the BYTE
length, the expression lstrlen(TCHAR data)*sizeof(TCHAR)
is needed to derive the BYTE
length.E.13 Performance and Tuning
This section contains the following topics:
E.13.1 General ODBC Programming Guidelines
Apply the following programming guidelines to improve the performance of an ODBC application:
- Enable connection pooling if the application will frequently connect and disconnect from a data source. Reusing pooled connections is extremely efficient compared to reestablishing a connection.
- Minimize the number of times a statement must be prepared. Where possible, use bind parameters to make a statement reusable for different parameter values. Preparing a statement once and running it several times is much more efficient than preparing the statement for every
SQLExecute
. - Do not include columns in a
SELECT
statement of which you know the application will not retrieve; especiallyLONG
columns. Because of the nature of the database server protocols, Oracle ODBC Driver must fetch the entire contents of aLONG
column if it is included in theSELECT
statement, regardless of whether the application binds the column or performs aSQLGetData
operation. - If you are performing transactions that do not update the data source, then set the
SQL_ATTR_ACCESS_MODE
attribute of the ODBCSQLSetConnectAttr
function toSQL_MODE_READ_ONLY
. - If you are not using ODBC escape clauses, then set the
SQL_ATTR_NOSCAN
attribute of the ODBCSQLSetConnectAttr
function or the ODBCSQLSetStmtAttr
function to true. - Use the ODBC
SQLFetchScroll
function instead of the ODBCSQLFetch
function for retrieving data from tables that have a large number of rows.
E.13.2 Data Source Configuration Options
This section discusses the performance implications of the following ODBC data source configuration options:
- Enable Result SetsThis option enables the support of returning result sets (for example,
RefCursor
) from procedure calls. The default is enabling the returning of result sets.Oracle ODBC Driver must query the database server to determine the set of parameters for a procedure and their data types in order to determine if there are anyRefCursor
parameters. This query incurs an additional network round trip the first time any procedure is prepared and executed. - Enable LOBsThis option enables the support of inserting and updating LOBs. The default is enabled.Oracle ODBC Driver must query the database server to determine the data types of each parameter in an
INSERT
orUPDATE
statement to determine if there are any LOB parameters. This query incurs an additional network round trip the first time anyINSERT
orUPDATE
is prepared and run.See Also:Oracle Database SecureFiles and Large Objects Developer's Guide for more information on LOBsNote:LOB data compression enables you to compress SecureFiles to gain disk, Input-Output, and redo logging savings. This reduces costs as compression utilizes space most efficiently and improves the performance of SecureFiles as compression reduces Input-Output and redo logging.LOB data encryption provides enhanced database security. While the encrypted data is available for random reads and writes, the data is more secure.Data compression and encryption consumes some additional memory. - Bind TIMESTAMP as DATEBinds
SQL_TIMESTAMP
parameters as the appropriate Oracle Database data type. If this option is set toTRUE
, thenSQL_TIMESTAMP
binds as the OracleDATE
data type. If this option is set toFALSE
, thenSQL_TIMESTAMP
binds as the OracleTIMESTAMP
data type, which is the default. - Enable Closing CursorsThe
SQL_CLOSE
option of the ODBC function,SQLFreeStmt
, is supposed to close associated cursors with a statement and discard all pending results. The application can reopen the cursor by running the statement again without doing a SQLPrepare again. A typical scenario for this would be an application that expects to be idle for a while but will reuse the same SQL statement again. While the application is idle, it may want to free up any associated server resources.The OCI, on which Oracle ODBC Driver is layered, does not support the functionality of closing cursors. Therefore, by default, theSQL_CLOSE
option has no effect in Oracle ODBC Driver. The cursor and associated resources remain open on the database.Enabling this option causes the associated cursor to be closed on the database server. However, this results in the parse context of the SQL statement being lost. The ODBC application can run the statement again without callingSQLPrepare
. However, internally, Oracle ODBC Driver must prepare and run the statement all over. Enabling this option has a severe performance impact on applications that prepare a statement once and run it repeatedly.This option should only be enabled if freeing the resources on the server is necessary. - Fetch Buffer SizeSet the Fetch Buffer Size (
FetchBufferSize
) in theodbc.ini
file to a value specified in bytes. This value is the amount of memory needed that will determine how many rows of data Oracle ODBC Driver will pre-fetch at a time from an Oracle Database to the client's cache regardless of the number of rows the application program requests in a single query, thus improving performance.There will be an improvement in the response time of applications that typically fetch fewer than 20 rows of data at a time, particularly over slow network connections or from heavily loaded servers. Setting this too high can have an adverse effect on response time or consume large amounts of memory. The default is 64,000 bytes. You should choose an optimal value for the application.When theLONG
andLOB
data types are present, the number of rows pre-fetched by Oracle ODBC Driver is not determined by the Fetch Buffer Size. The inclusion of theLONG
andLOB
data types minimizes the performance improvement and could result in excessive memory use. Oracle ODBC Driver ignores the Fetch Buffer Size and only pre-fetches a set number of rows in the presence of theLONG
andLOB
data types.
See Also:
'Format of the Connection String for the SQLDriverConnect Function'Microsoft Odbc For Oracle Driver
E.13.3 DATE and TIMESTAMP Data Types
If a
DATE
column in the database is used in a WHERE
clause and the column has an index, then there can be an impact on performance. For example:In this example, an index on the
HIREDATE
column could be used to make the query run quickly. However, because HIREDATE
is a DATE
value and Oracle ODBC Driver is supplying the parameter value as TIMESTAMP
, the query optimizer of Oracle Database must apply a conversion function. To prevent incorrect results (as might happen if the parameter value had nonzero fractional seconds), the optimizer applies the conversion to the HIREDATE
column resulting in the following statement:However, this has the effect of disabling the use of the index on the
HIREDATE
column. Instead, the server performs a sequential scan of the table. If the table has many rows, then this can take a long time. As a workaround for this situation, Oracle ODBC Driver has the connection option to bind TIMESTAMP
as DATE
. When this option is enabled, Oracle ODBC Driver binds SQL_TIMESTAMP
parameters as the Oracle DATE
data type instead of the Oracle TIMESTAMP
data type. This enables the query optimizer to use any index on the DATE
columns.Note:
This option is intended only for use with Microsoft Access or other similar programs that bind DATE columns as TIMESTAMP columns. It should not be used when there are actual TIMESTAMP columns present or when data loss may occur. Microsoft Access runs such queries using whatever columns are selected as the primary key.E.14 Error Messages
When an error occurs, Oracle ODBC Driver returns the native error number, the
SQLSTATE
(an ODBC error code), and an error message. The driver derives this information both from errors detected by the driver and errors returned by Oracle Database.Native Error
For errors that occur in the data source, Oracle ODBC Driver returns the native error returned to it by Oracle Database. When Oracle ODBC Driver or the Driver Manager detects an error, Oracle ODBC Driver returns a native error of zero.
SQLSTATE
Oracle Odbc Driver Download
For errors that occur in the data source, Oracle ODBC Driver maps the returned native error to the appropriate
SQLSTATE
. When Oracle ODBC Driver or the Driver Manager detects an error, it generates the appropriate SQLSTATE
.Error Message
For errors that occur in the data source, Oracle ODBC Driver returns an error message based on the message returned by Oracle Database. For errors that occur in Oracle ODBC Driver or the Driver Manager, Oracle ODBC Driver returns an error message based on the text associated with the
SQLSTATE
.Error messages have the following format:
The prefixes in brackets ([ ]) identify the source of the error. The following table shows the values of these prefixes returned by Oracle ODBC Driver. When the error occurs in the data source, the
vendor
and ODBC-component
prefixes identify the vendor and name of the ODBC component that received the error from the data source.Error Source | Prefix | Value |
---|---|---|
Driver Manager | [vendor] [ODBC-component] [data-source] | [unixODBC] [Driver Manager] Not applicable |
Oracle ODBC Driver | [vendor] [ODBC-component] [data-source] | [ORACLE] [Oracle ODBC Driver] Not applicable |
Oracle Database | [vendor] [ODBC-component] [data-source] | [ORACLE] [Oracle ODBC Driver] [Oracle OCI] |
For example, if the error message does not contain the
Ora
prefix shown in the following format, then error is an Oracle ODBC Driver error and should be self-explanatory.If the error message contains the
Ora
prefix shown in the following format, then it is not an Oracle ODBC Driver error.Note:
Although the error message contains the Ora
prefix, the actual error may originate from one of several sources.Oracle Odbc Driver Configuration Fetch Buffer Size Error
If the error message text starts with the
ORA-
prefix, then you can obtain more information about the error in Oracle Database documentation.