1

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

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

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

4

2 回答 2

1

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

import os 
os.environ["NLS_LANG"] = ".UTF8"
于 2012-11-05T16:02:54.910 回答
1

我刚刚提交了一个补丁来为我解决这个问题。对 Unicode 的支持被添加到 cx_Oracle,然后被删除。SQLAlchemy 的 cx_oracle.py 中有几行检查 cx_Oracle 模块的版本。该补丁更新了这些版本检查,以考虑恢复的 Unicode 支持。

我认为正是你的问题帮助我在几周前第一次让 SQLAlchemy 与 cx_Oracle 一起工作,所以感谢你的提问!:-D

于 2011-12-01T11:21:28.597 回答