我在使用cx_Oracle版本5.1(autoload = True)反映Oracle中的表时遇到问题。在cx_Oracle 5.0.4版下,一切正常。这是我得到的错误:
DatabaseError: (DatabaseError) ORA-01460: unimplemented or unreasonable conversion requested
不知何故,发送到oracle的查询没有正确替换tablename和schema。有没有人见过这样的东西并有解决方案?我想避免为所有表手动定义列。如果可能,我也想使用最新版本。
答案 0 :(得分:1)
我只是submitted a patch为我解决了这个问题。对cx_Oracle添加了对Unicode的支持,然后删除了。 SQLAlchemy的cx_oracle.py中有几行检查cx_Oracle模块的版本。该补丁更新了这些版本检查,以考虑恢复的Unicode支持。
我认为这是你的问题帮助我让SQLAlchemy几周前第一次使用cx_Oracle,所以非常感谢你的提问! :-D
答案 1 :(得分:1)
正如在Alex的补丁的线程中所讨论的,解决方案是设置NLS_LANG环境变量,以便cx_oracle可以使用正确的转换器。例如:
import os
os.environ["NLS_LANG"] = ".UTF8"