让Unicode ODBC Teradata驱动程序在Ubuntu上运行
我试图将Teradata 15.10 ODBC驱动程序的Unicode版本配置为在Ubuntu服务器上工作。我需要使用unixODBC,因为这是我的统计数据包Stata所需要的,它在Linux上不支持带有iODBC的Unicode驱动程序。我安装了TD驱动程序 以下是有关我的设置的一些信息:让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
$ 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);