我正在尝试使用Python的SQLAlchemy库来查询Teradata数据库。我可以使用以下代码创建引擎。
from sqlalchemy import create_engine
td_engine = create_engine('teradata://' + 'usrname' + ':' + 'pswrd' + '@' + 'myOdbcDataSource' + ':22/?charset=UTF8')
但是当我尝试使用引擎时,我收到以下错误。
ValueError:字符U + 590048不在[U + 0000; U + 10FFFF]
使用与我尝试的数据库交互的所有函数发生此错误。例如,当我尝试执行以下操作时出现此错误。
sqlStr = 'select top 1000 * from myTable;'
result = td_engine.execute(sqlStr)
另一个例子是,当我尝试执行以下操作时,我收到同样的错误。
td_engine.table_names('mySchema')
错误之前的日志表明正在使用ODBC驱动程序连接到数据库,所以我想知道这是否与我配置ODBC驱动程序的方式有关。下面是我的Mac上的/ Library / ODBC /中的odbc.ini文件。
[ODBC Data Sources]
myodbca = MySQL ODBC 5.3 ANSI Driver
myodbc = MySQL ODBC 5.3 Unicode Driver
myOdbcDataSource = Teradata Database ODBC Driver 16.20
[myOdbcDataSource]
Driver = /Library/Application Support/teradata/client/16.20/lib/tdataodbc_sbu.dylib
DBCName = myUrl
DefaultDatabase = myDb
UserName = usrname
Password = pswrd
CharacterSet = UTF8
有没有人对如何修复此Unicode错误并使SQL Alchemy Teradata引擎有效有任何想法?提前谢谢。