让Unicode ODBC Teradata驱动程序在Ubuntu上运行

让Unicode ODBC Teradata驱动程序在Ubuntu上运行,ubuntu,unicode,stata,teradata,unixodbc,Ubuntu,Unicode,Stata,Teradata,Unixodbc,我试图将Teradata 15.10 ODBC驱动程序的Unicode版本配置为在Ubuntu服务器上工作。我需要使用unixODBC,因为这是我的统计数据包Stata所需要的,它在Linux上不支持带有iODBC的Unicode驱动程序。我安装了TD驱动程序 以下是有关我的设置的一些信息: $ odbcinst -j unixODBC 2.3.4 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr

我试图将Teradata 15.10 ODBC驱动程序的Unicode版本配置为在Ubuntu服务器上工作。我需要使用unixODBC,因为这是我的统计数据包Stata所需要的,它在Linux上不支持带有iODBC的Unicode驱动程序。我安装了TD驱动程序

以下是有关我的设置的一些信息:

$ odbcinst -j
unixODBC 2.3.4
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /home/dmasterov/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

$ odbcinst -q -d
[ODBC DRIVERS]
[Teradata]

$ odbcinst -q -s
[ODBC]
[mozart]

$ cat ~/.odbc.ini
[ODBC]
InstallDir=/opt/teradata/client/ODBC_64
Trace=0
TraceDll=/opt/teradata/client/ODBC_64/lib/odbctrac.so
TraceFile=~/trace.log
TraceAutoStop=0

[ODBC Data Sources]
mozart=tdata.so

[mozart]
Driver=/opt/teradata/client/ODBC_64/lib/tdata.so
Description=mozart
DBCName=VVVVVVVVVV
Username=YYYYYYYYY
Password=XXXXXXXXX
CharacterSet=UTF8

$ cat /usr/local/etc/odbcinst.ini
[ODBC DRIVERS]
Teradata=Installed

[Teradata]
Driver=/opt/teradata/client/ODBC_64/lib/tdata.so
APILevel=CORE
ConnectFunctions=YYY
DriverODBCVer=3.51
SQLLevel=1

$ echo $LD_LIBRARY_PATH
/usr/lib64

$ echo $ODBCINI
/home/dmasterov/.odbc.ini
我能够使用
isql
tdxodbc64
而没有错误,只是显示的输出中缺少所有Unicode字符,就好像它们根本不存在一样

使用ANSI驱动程序,一切都可以正常工作(Unicode字符除外):

当我尝试在Stata中使用Unicode驱动程序时,DSN名称被破坏,并且在尝试加载数据时出现以下错误:

. set odbcdriver unicode

. odbc list

Data Source Name                   Driver
-------------------------------------------------------------------------------
楶慶摬i⇩奙羱                       摴瑡⹡潳㘀앏畟Е
 -------------------------------------------------------------------------------

. odbc load, exec("SELECT XXXXXX;") dsn("mozart") lowercase clear
The ODBC driver reported the following diagnostics
[DataDirect][ODBC lib] Data source name not found and no default driver specified
SQLSTATE=IM002
[DataDirect][ODBC lib] Invalid connection string attribute
SQLSTATE=01S00
r(682);
我猜DataDirect ODBC连接器正在这个过程中的某个地方介入,Unicode字符在翻译中丢失了

我如何确定到底出了什么问题?我能做些什么来修理它吗?我的Mac笔记本电脑也有类似的问题



编辑#1:strace isql mozart 2>~/strace.log的输出

您能共享unixODBC跟踪吗?
. set odbcdriver unicode

. odbc list

Data Source Name                   Driver
-------------------------------------------------------------------------------
楶慶摬i⇩奙羱                       摴瑡⹡潳㘀앏畟Е
 -------------------------------------------------------------------------------

. odbc load, exec("SELECT XXXXXX;") dsn("mozart") lowercase clear
The ODBC driver reported the following diagnostics
[DataDirect][ODBC lib] Data source name not found and no default driver specified
SQLSTATE=IM002
[DataDirect][ODBC lib] Invalid connection string attribute
SQLSTATE=01S00
r(682);