我需要使用 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 驱动程序] 不够 要登录的信息 (0) (SQLDriverConnect);[28000] [Teradata][ODBC Teradata 驱动程序] 信息不足,无法登录 (0)')
我在这里错过了什么?设置连接还需要包括什么?
另外,还有其他方法可以设置连接吗?在看的时候,我遇到了太数据。UdaExec().这也可以使用吗?
以下在 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 文件(即/home/user/.odbc.ini 来跳过 ODBCINI env 变量的设置(请注意,.odbc.ini 是一个隐藏文件,文件名中带有点前缀)
现在要连接到 Teradata,请使用以下代码片段。
import pyodbc
pyodbc.pooling = False
conn = pyodbc.connect('DSN=my_data_source',ansi=True, autocommit=True)