Reflection SQL炼金术和CX_Oracle反射问题

Reflection SQL炼金术和CX_Oracle反射问题,reflection,sqlalchemy,cx-oracle,Reflection,Sqlalchemy,Cx Oracle,我在使用cx_Oracle 5.1版(autoload=True)在Oracle中反映表时遇到问题。在cx_Oracle 5.0.4版下,一切正常。下面是我得到的错误: DatabaseError: (DatabaseError) ORA-01460: unimplemented or unreasonable conversion requested 不知何故,发送到oracle的查询没有正确地替换表名和模式。有没有人见过这样的事情,并有解决办法?我希望避免为所有表手动定义列。如果可能的话

我在使用cx_Oracle 5.1版(autoload=True)在Oracle中反映表时遇到问题。在cx_Oracle 5.0.4版下,一切正常。下面是我得到的错误:

DatabaseError: (DatabaseError) ORA-01460: unimplemented or unreasonable conversion requested 
不知何故,发送到oracle的查询没有正确地替换表名和模式。有没有人见过这样的事情,并有解决办法?我希望避免为所有表手动定义列。如果可能的话,我还想使用最新版本。

我只是想帮我解决这个问题。对Unicode的支持被添加到cx_Oracle中,然后被删除。SQLAlchemy的cx_oracle.py中有几行代码检查cx_oracle模块的版本。修补程序将更新这些版本检查,以考虑恢复的Unicode支持


我认为是您的问题帮助我在几周前第一次与cx_Oracle合作,所以感谢您的提问!:-D

正如Alex补丁的线程中所讨论的,解决方案是设置NLS_LANG环境变量,以便cx_oracle可以使用正确的转换器。例如:

import os 
os.environ["NLS_LANG"] = ".UTF8"