SQLAlchemy Unicode错误 - 查询Teradata数据库

时间:2018-04-25 14:17:23

标签: python unicode sqlalchemy teradata

我正在尝试使用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引擎有效有任何想法?提前谢谢。

0 个答案:

没有答案