查询Teradata数据库时SQLAlchemy Unicode错误

2024-10-01 11:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用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引擎正常工作有什么想法吗?提前谢谢你。在


Tags: from引擎数据库driver错误createutf8engine