我正在使用Oracle Database 10g xe universal Rel.10.2.0.1.0 against cx_Oracle-5.0.4-10g-unicode-py26-1.x86_64 on a django project on Ubuntu 10.04
我的数据库由Oracle 10gr2 enterprise edition
生成(在Windows XP上,导入在US7ASCII character set and AL16UTF16 NCHAR character set
完成,导入服务器使用AL32UTF8 character set
,导出客户端使用EL8MSWIN1253 character set
)
当我尝试django-admin.py inspectdb
时,我收到以下错误:
.......“indices = connection.introspection.get_indexes(cursor, table_name)文件 “/usr/lib/pymodules/python2.6/django/db/backends/oracle/introspection.py” 第116行,在get_indexes中 for cursor.fetchall()中的行:文件“/usr/lib/pymodules/python2.6/django/db/backends/oracle/base.py”,行 483,在fetchall for in self.cursor.fetchall()])cx_Oracle.DatabaseError:OCI-22061:格式文本无效[T“。
我知道"inspectdb works with PostgreSQL, MySQL and SQLite"
但正如我从其他帖子中所理解的那样,它也可以以某种方式与Oracle合作。
有谁知道为什么我会收到此错误或我如何解决?
答案 0 :(得分:0)
你可以尝试更新cx_Oracle 5.1.1包,然后试试这个:
python manage.py inspectdb --database dbname
答案 1 :(得分:0)
您可以下载cx_Oracle-5.1.2并使用以下命令解决问题。
$ wget -c http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm
安装rpm的命令
$ sudo yum install cx_Oracle-5.0.4-11g-unicode-py27-1.x86_64.rpm
同时下载Oracle instantclient http://download.oracle.com/otn/linux/instantclient/11101/basic-11.1.0.6.0-linux-x86_64.zip 和 http://download.oracle.com/otn/linux/instantclient/11101/sdk-11.1.0.6.0-linux-x86_64.zip
提取以上下载的zip文件。 从 sdk-11.1.0.6.0-linux-x86_64 复制 include 文件夹并粘贴到 basic-11.1.0.6.0-linux-x86_64 在 .bashrc 文件
中设置以下路径export $ LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ oracle_lib / oracle_instantclient_11_1
export $ ORACLE_HOME = / oracle_lib / oracle_instantclient_11_1
$ ls / oracle_lib / oracle_instantclient_11_1
您应该找到包含文件列表的 include 文件夹
然后使用$ source~ / .bashrc 执行.bashrc文件
我已经测试过了。