目前,我正在运行一个简单的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驱动程序,但我只是不明白为什么我无法连接。有人对此有任何想法吗?
答案 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,所以我重定向了两个文件。但可能只需要第一个。