2011-06-30 48 views
1

我在使用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的查詢不能正確替換表名和模式。有沒有人看到這樣的事情,並有解決方案?我想避免爲所有表手動定義列。如果可能,我也想使用最新版本。

回答

1

我只是submitted a patch修復這個問題給我。對Unicode的支持已添加到cx_Oracle中,然後再刪除。 SQLAlchemy的cx_oracle.py中有幾行檢查cx_Oracle模塊的版本。該補丁更新這些版本檢查以考慮恢復的Unicode支持。

我認爲這是你的問題,幫助我在幾周前第一次獲得SQLAlchemy與cx_Oracle的合作,所以謝謝你的提問! :-D

1

正如在Alex補丁的線程中所討論的,一個解決方案是設置NLS_LANG環境變量,以便cx_oracle可以使用正確的轉換器。例如:

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