使用pyodbc连接Teradata数据库的问题

时间:2013-01-11 01:14:12

标签: python odbc pyodbc

目前,我正在运行一个简单的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)')

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

2 个答案:

答案 0 :(得分:0)

你必须使用以下连接:

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

您可以将DSN=yourDSNname;替换为已有的内容。

答案 1 :(得分:0)

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

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,所以我重定向了两个文件。但可能只需要第一个。