ValueError:字符U + 590048不在[U + 0000; U + 10ffff] - MAC OS

时间:2018-05-08 14:26:37

标签: python-3.x sqlalchemy odbc teradata pyodbc

从我的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')

#使用PYODBC:下面的代码给了我一个新的错误说('01000',“      [01000]     [unixODBC] [Driver Manager]无法打开lib'Teradata':找不到文件     (0)(SQLDriverConnect)“)

import pyodbc
td_conn = pyodbc.connect('DRIVER= . 
{Teradata};DBCName='+server+';UID='+username+';PWD='+ password, 
 automcommit=True)

cursor = td_conn.cursor()

无论如何,我无法与teradata建立联系,有人可以让我知道这里发生了什么以及如何一劳永逸地解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用pyodbc模块找到答案。将Driver = {Teradata}参数替换为驱动程序所在的完整路径,在fpr下面检查完整的连接字符串。请注意,这只能在MAC OS上使用。

td_conn = pyodbc.connect('DRIVER={/Library/Application Support/teradata/client/16.20/lib/tdataodbc_sbu.dylib};DBCName='+server+';UID='+username+';PWD='+ password, automcommit=True, authentication = "LDAP")