This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Download Microsoft Edge
More info about Internet Explorer and Microsoft Edge
Enhancements to the Microsoft OLE DB Provider for Oracle are designed to take advantage of significant technology improvements, but because the provider is dependent on a variety of release schedules, not all new features can be incorporated simultaneously. The resulting limitations follow.
Size of VARCHAR Type Column
In Oracle8, the size of the RAW and CHAR data types increased to 2000 bytes. This allowed the maximum size of a VARCHAR type column to increase from 2000 to 4000 bytes. The Oracle 7.3.
x
client software has no way to bind a parameter value larger than 2000 bytes.
Therefore, if you create a table with a VARCHAR type column of larger than 2000 bytes, you will be unable to perform parameterized inserts, updates, deletes, and queries against it with data that exceeds the 2000-byte limit of the client software. ORA-01026 errors will be returned. Data that is within the limits enforced by the Oracle client software will work properly.
To avoid this 2000-byte limit, you must upgrade your client software to Oracle8 (version 8.0.4.1.1c or later).
Reading System Tables
Some system tables returned by
IDBSchemaRowset
might not be accessible due to system access restrictions. When
IDBSchemaRowset::GetRowset
is called for a value of DBSCHEMA_TABLE that is a system table, an error may occur and E_FAIL is returned.
Limitations on Column-Name Size When Using DBCS
Because Oracle is based on multibyte character sets, this provider restricts the 30-byte limitation on column names to 15 when using the Double Byte Character Set.
Possibility of Unrecognized Duplicate Rowsets
This provider allows Oracle to add a ROWID column to SELECT statements, making each row uniquely identifiable in order to have an updatable rowset. When attempting to fetch rowsets (for example, by using the SELECT DISTINCT command), duplicate rowsets might not be recognized because the ROWID column makes each one unique.
Limitations of DBTYPE_VARNUMERIC
The range of numbers in Oracle exceeds the range of DBTYPE_VARNUMERIC. Numbers larger than those with an exponent of 127 or those with an exponent less than -128 cannot be represented by this provider.
Bookmarks
Bookmarks are not supported.
OLE DB Views
Views are not supported.
Errors When Using Oracle 7.x Servers
Using this provider against an Oracle 7.x server may produce an error when performing an outer join. In an outer join, all columns are potentially nullable; however, Oracle 7.x may report that a column in an outer join is non-nullable and therefore generate an error when a resulting column contains a null value. The workaround is to use Oracle 8.x servers.
Oracle Server Converts Empty Strings to Null Values
When updating an Oracle database using this provider, be aware that Oracle will convert empty strings to NULL. When using the ADO
Update
method, you may receive the error "The specified row could not be located for updating; Some values may have been changed since it was last read." (80040e38). This occurs because the Oracle server converts the empty string to NULL, but the ADO
Recordset
object stores the empty string.