【发布时间】:2018-10-18 13:08:55
【问题描述】:
从我的 Python 环境连接到 Teradata 时,有人可以帮我解决以下错误。
我正在使用 ODBC 驱动程序方法,并且尝试了以下所有现有方法进行连接,但没有运气。
注意:如果您使用的是windows,您可以直接使用这些方法,但是当您使用MAC OS时会出现问题(虽然不是全部)
使用 TERADATA 模块和 SQL Alchemy。
import teradata
import pyodbc
server='111.00.00.00'
username = 'user'
password = 'pwd'
udaExec = teradata.UdaExec(appName="test", version="1.0",
logConsole=True)
ndw_con = udaExec.connect(method = 'odbc',authentication = "LDAP",
system=server, username=username, password=password)
# SQL ALCHEMY from teradata
from sqlalchemy import create_engine
user = 'user'
pwd = 'pwd'
host = '1'11.00.00.00'
td_engine = create_engine('teradata://'+user+':'+pwd+'@'+host+':22/' )
result = td_engine.execute('select top 100 * from temp.sampledata')
# USING PYODBC: 下面的代码给了我一个新的错误说 ('01000', " [01000] [unixODBC][驱动程序管理器]无法打开库“Teradata”:找不到文件 (0) (SQLDriverConnect)")
import pyodbc
td_conn = pyodbc.connect('DRIVER= .
{Teradata};DBCName='+server+';UID='+username+';PWD='+ password,
automcommit=True)
cursor = td_conn.cursor()
无论如何,我无法连接到 teradata,谁能告诉我这里发生了什么以及如何一劳永逸地解决这个问题。
谢谢!
【问题讨论】:
-
嗨,使用 pyodbc 模块找到了答案。将 Driver = {Teradata} 参数替换为驱动程序所在的完整路径,检查下面的完整连接字符串。请注意,这只能在 MAC OS 上使用。 td_conn = pyodbc.connect('DRIVER={/Library/Application Support/teradata/client/16.20/lib/tdataodbc_sbu.dylib};DBCName='+server+';UID='+username+';PWD='+密码, automcommit =真,身份验证=“LDAP”)
标签: python-3.x sqlalchemy odbc teradata pyodbc