使用 Python 连接到 Teradata 的问题

Issue Connecting to Teradata using Python

我需要使用 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()

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

Error: ('28000', '[28000] [Teradata][ODBC Teradata Driver] Not enough information to log on (0) (SQLDriverConnect); [28000] [Teradata][ODBC Teradata Driver] Not enough information to log on (0)')

我在这里缺少什么?还需要包括什么来建立连接?

另外,请问有没有其他方法可以建立连接。在寻找时,我遇到了 teradata.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 文件来跳过 ODBCINI 环境变量的设置,即 /home/user/.odbc.ini(注意 .odbc.ini是一个隐藏文件,文件名中有点前缀)

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

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