3

目前,我正在运行一个简单的 python 脚本来连接数据库:

import pyodbc
cnxn = pyodbc.connect('DRIVER={Teradata};DBCNAME=(MYDB);UID=(MYUSER); PWD=(MYPASS);QUIETMODE=YES')

显然替换了服务器和凭据。但是,在运行此脚本时,我收到以下错误:

pyodbc.Error: ('200', '[200] [unixODBC][eaaa[DCTrdt rvr o nuhifraint o n (0) (SQLDriverConnectW)')

我能找到的唯一帮助是在这里安装了Teradata ODBC 驱动程序,但我只是不明白为什么我无法连接。有人对此有任何想法吗?

4

2 回答 2

0

我遇到了这个“非英语”错误消息问题。我认为这是由于使用了错误版本的 libodbc.so 和 libodbcinst.so。更改 /usr/lib/... 中的链接以指向安装了 teradata 的版本对我有用。在 64 位 Ubuntu 12.04 中使用默认安装目录的命令是:

cd /usr/lib/x86_64-linux-gnu
ls -lha | grep odbc (To should see the files below which are to be replaced).
sudo mv libodbc.so.1.0.0 Xlibodbc.so.1.0.0
sudo ln -s /opt/teradata/client/14.10/odbc_64/lib/libodbc.so libodbc.so.1.0.0 
sudo mv libodbcinst.so.1.0.0 Xlibodbcinst.so.1.0.0
sudo ln -s /opt/teradata/client/14.10/odbc_64/lib/libodbcinst.so libodbcinst.so.1.0.0

我以前也安装过(通过 apt-get)odbcinst,所以我重定向了这两个文件。但可能只需要第一个。

于 2013-11-15T11:23:04.113 回答
0

您必须使用以下方式进行连接:

TDCONN = pyodbc.connect('DSN=yourDSNname;',ansi=True, autocommit=True)

你可以DSN=yourDSNname;用你已经拥有的东西替换。

于 2013-09-13T12:35:25.040 回答