我尝试使用Python的SQLAlchemy库来查询Teradata数据库。我可以用下面的代码创建引擎。在
from sqlalchemy import create_engine
td_engine = create_engine('teradata://' + 'usrname' + ':' + 'pswrd' + '@' + 'myOdbcDataSource' + ':22/?charset=UTF8')
但是当我尝试使用引擎时,我得到了以下错误。在
ValueError: character U+590048 is not in range [U+0000; U+10ffff]
使用与我尝试过的数据库交互的所有函数时都会发生此错误。例如,当我尝试执行以下操作时,会出现此错误。在
sqlStr = 'select top 1000 * from myTable;'
result = td_engine.execute(sqlStr)
作为另一个例子,当我尝试执行以下操作时,我得到了相同的错误。在
td_engine.table_names('mySchema')
错误之前的日志表明正在使用ODBC驱动程序连接到数据库,因此我想知道这是否与我配置ODBC驱动程序的方式有关。下面是我的odbc.ini文件文件位于Mac上的/Library/ODBC/。在
[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错误并让sqlalchemyteradata引擎正常工作有什么想法吗?提前谢谢你。在
尝试将编码调整为UTF8:
相关问题 更多 >
编程相关推荐