MDAC 2.5 SDK - OLE DB Providers
OLE DB Provider for Oracle


 

Limitations of the OLE DB Provider for Oracle

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 Column

In Oracle8, the maximum size of a VARCHAR column has increased 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 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 ISchemaRowset might not be accessible due to system access restrictions. When ISchemaRowset::OpenRowset 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.

ROWID Column Added to Rowset

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.