我需要使用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()。这也可以用吗?
答案 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)