在使用一些odbc unicode驱动时候会报Unicode converter buffer overflow
这是我在OBIEE 12c看到的错误
ODBC 驱动程序返回了错误 (SQLExecDirectW)。
错误详细信息
错误代码: OPR4ONWY:U9IM8TAC:U9IM8TAC:U9IM8TAC:U9IM8TAC:OI2DL65P
状态: HY000。代码: 10058。[NQODBC] [SQL_STATE: HY000] [nQSError: 10058] 出现一般错误。 (HY000)
状态: HY000。代码: 43113。[nQSError: 43113] 从 OBIS 返回消息。 (HY000)
状态: HY000。代码: 43119。[nQSError: 43119] 查询失败: (HY000)
状态: HY000。代码: 16001。[nQSError: 16001] ODBC 错误状态: S1000 代码: 0 消息: [DataDirect][ODBC lib] Unicode converter buffer overflow。 (HY000)
原因是unicode的类型不匹配,比如需要UTF16 (4 byte) 而用了UTF8 (4 byte)
ODBC driver manager may be using 4 bytes for unicode data (such as UTF16) while the driver uses 2 bytes (i.e. UTF8)
可以在odbc.ini中设置
DriverUnicodeType=1
或
DriverUnicodeType=2
参考这个
https://www.ibm.com/support/pages/datastage-odbc-error-datastagesql-clientodbcdatadirectodbc-libunicode-converter-buffer-overflow