Oracle OLEDB Throws Error "DBCOLUMNFLAGS_ISFIXEDLENGTH" to Handle CHAR(n BYTE) From Linked Server With MS SQL Server
(Doc ID 2484393.1)
Last updated on JULY 20, 2024
Applies to:
Oracle Provider for OLE DB - Version 12.1.0.2 and laterMicrosoft Windows (32-bit)
Microsoft Windows x64 (64-bit)
Symptoms
Error occurred while querying column CHAR(n BYTE) from MS SQL Server with linked server using Oracle OLEDB provider.
Msg 7356, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "OrclTestLink" supplied inconsistent metadata for a column.
The column "GENDER" (compile-time ordinal 2) of object ""TEST"."TEST1"" was reported to have a "DBCOLUMNFLAGS_ISFIXEDLENGTH" of 16 at compile time and 0 at run time.
Changes
Notes : In Oracle, you can define the type of a string column as:
CHAR(15 BYTE) – the column can hold string of up to 15 bytes,
CHAR(15 CHAR) – the column can hold string of up to 15 characters,
Simply CHAR(15) – the semantics depend on the value of the NLS_LENGTH_SEMANTICS parameter of the session creating the table.
By default your table is created with byte semantics.
CHAR(15 BYTE) – the column can hold string of up to 15 bytes,
CHAR(15 CHAR) – the column can hold string of up to 15 characters,
Simply CHAR(15) – the semantics depend on the value of the NLS_LENGTH_SEMANTICS parameter of the session creating the table.
By default your table is created with byte semantics.
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |