pyodbc和Teradata出错

时间:2017-03-23 19:34:54

标签: python ubuntu-14.04 teradata pyodbc

我在ubuntu 14.04上安装了teradata 16.00 odbc驱动程序。 如果我跑:

/opt/teradata/client/16.00/bin/tdxodbc64 

我可以连接和查询。 我正在尝试通过python彻底连接pyodbc = 3.0.10:

Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.

我可以连接到teradata DDBB但是每次尝试执行查询时都会出错:

>>> import pyodbc
>>> pyodbc.pooling = False
>>> connection=pyodbc.connect('DSN=XXX;UID=XXX;PWD=XXX',ANSI=True,autocommit=False,encoding='utf-8')
>>> curs=connection.cursor()
>>> sql="select tablename, databasename from dbc.tables"
>>> curs.execute(sql)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('HY000', 'The driver did not supply an error!')

如果我在连接上输入了错误的UID或PWD,我执行时会出现错误:

>>> connection=pyodbc.connect('DSN=XXX;UID=XXX;PWD=WRONGXXX',ANSI=True,autocommit=False,encoding='utf-8')

所以ubuntu要求Teradata提供凭证。 我执行任何查询时都不知道出了什么问题。 任何帮助?

我的odbc.ini驱动程序定义是:

[XXXX]
Driver=/opt/teradata/client/16.00/lib64/tdata.so
Description=Running Teradata V14.10
DBCName=x.x.x.x
SessionMode=Teradata
NoScan=Yes
RunInQuietMode=Yes
StCheckLevel=0
DateTimeFormat=AAA
LastUser=
Username=
Password=
Database=XXX
DefaultDatabase=XXX
CharacterSet=UTF8

感谢!!!

0 个答案:

没有答案