让 odbc 驱动程序与 linux 的 windows 子系统一起工作

Getting odbc drivers to work with windows subsystem for linux

我正在尝试配置 Teradata 16.20.00.54 ODBC 驱动程序以在 Ubuntu 上工作(在 windows 子系统下用于 linux)。我一直遇到很多深奥的错误,所以我想知道是否有可能让它与 WSL 一起工作。

(1) 我下载了 ubuntu here

的 teradata 驱动程序

(2)然后我按照说明配置了ODBC驱动here

这是我的设置:

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

$ odbcinst -q -d
odbcinst: SQLGetPrivateProfileString failed with .

$ odbcinst -q -s
[<DSN_name>]

$ cat ~/.odbc.ini
[ODBC Data Sources]

Teradata ODBC DSN = Teradata Database ODBC Driver 16.20
<DSN_name> = DEVDB

[<DSN_name>]
Driver=/opt/teradata/client/ODBC_64/lib/tdataodbc_sb64.so
Description=Teradatadatabase
DBCName=DEVDB.mycompany.com
UID=XXXXXXX
PWD=XXXXXXX

$ cat /etc/odbcinst.ini

$ echo $ODBCINI
/home/myusername/.odbc.ini

我对 teradata 非常缺乏经验,因此我的配置可能存在某些问题。

这是我收到的错误消息:

$ isql DEVDB -v
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect

我认为您对配置示例的解释有点太字面意思了。对于名为 DEVDB 的 DSN,您的 .odbc.ini 看起来更像这样:

[ODBC Data Sources]
DEVDB=Teradata Database ODBC Driver

[DEVDB]
Driver=/opt/teradata/client/ODBC_64/lib/tdataodbc_sb64.so
Description=Teradatadatabase
DBCName=DEVDB.mycompany.com
UID=XXXXXXX
PWD=XXXXXXX