问题使用Python连接到Teradata

时间:2017-01-31 06:30:58

标签: python teradata pyodbc

我需要使用python连接到Teradata数据库。我使用了以下代码:

import pyodbc
import teradata



cnxn = pyodbc.connect('DRIVER={Teradata};SERVER=<*ServerName*>;DATABASE=<*Database Name*>;UID=<*User ID*>;PWD=<*Password*>',ansi=True, autocommit=True)

cur = cnxn.cursor()

但是在执行时,我收到的错误是:

  

错误:('28000','[28000] [Teradata] [ODBC Teradata Driver]不够   登录信息(0)(SQLDriverConnect); [28000] [Teradata] [ODBC   Teradata Driver]没有足够的信息登录(0)')

我在这里缺少什么?设置连接还需要包括哪些内容?

此外,还有其他方法来设置连接。看着,我遇到了 teradata.UdaExec()。这也可以用吗?

1 个答案:

答案 0 :(得分:0)

以下适用于CentOS Linux服务器。

在任何文件中创建一个包含以下内容的文件(比如odbc.ini)

[ODBC Data Sources]
my_data_source=tdata.so

[my_data_source]
Driver=/path/to/teradata/drivers/tdata.so
DBCName=<td_hostname>
LastUser=<user_name>
Username=<user_name>
Password=<password>
Database=<default_database>
DefaultDatabase=<default_database>
TDMSTPortNumber=<teradata_port>

将ODBCINI变量设置为odbc文件的路径

export ODBCINI=/file/to/path/of/odbc.ini

注意:您可以通过在主目录中创建odbc.ini文件来跳过ODBCINI env变量的设置,即/home/user/.odbc.ini(请注意.odbc.ini是一个带点的隐藏文件文件名中的前缀)

现在连接到Teradata使用下面的代码段。

import pyodbc
pyodbc.pooling = False
conn = pyodbc.connect('DSN=my_data_source',ansi=True, autocommit=True)