SQL Alchemy和CX_Oracle Reflection问题

问题描述:

我在使用cx_Oracle版本5.1(autoload = True)的Oracle中反映表的问题。一切工作正常cx_Oracle版本5.0.4。这里是我得到的错误:SQL Alchemy和CX_Oracle Reflection问题

DatabaseError: (DatabaseError) ORA-01460: unimplemented or unreasonable conversion requested 

不知何故,发送给oracle的查询不能正确替换表名和模式。有没有人看到这样的事情,并有解决方案?我想避免为所有表手动定义列。如果可能,我也想使用最新版本。

我只是submitted a patch修复这个问题给我。对Unicode的支持已添加到cx_Oracle中,然后再删除。 SQLAlchemy的cx_oracle.py中有几行检查cx_Oracle模块的版本。该补丁更新这些版本检查以考虑恢复的Unicode支持。

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

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

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