0

我正在使用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,出现以下错误:

.......“indexes = connection.introspection.get_indexes(cursor, table_name) 文件“/usr/lib/pymodules/python2.6/django/db/backends/oracle/introspection.py”,第 116 行,在cursor.fetchall() 中的行的 get_indexes:文件“/usr/lib/pymodules/python2.6/django/db/backends/oracle/base.py”,第 483 行,在 self.cursor.fetchall( )]) cx_Oracle.DatabaseError: OCI-22061: 无效的格式文本 [T"。

我知道,"inspectdb works with PostgreSQL, MySQL and SQLite"但正如我从其他帖子中了解到的那样,它也以某种方式与 Oracle 一起工作。

有谁知道我为什么会收到此错误或如何修复它?

4

2 回答 2

0

你可以尝试更新 cx_Oracle 5.1.1 包,然后试试这个:

python manage.py inspectdb --database dbname
于 2012-05-08T11:56:39.067 回答
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.ziphttp://download.oracle.com/otn/linux/即时客户端/11101/sdk-11.1.0.6.0-linux-x86_64.zip

解压上面下载的 zip 文件。从sdk-11.1.0.6.0-linux-x86_64复制包含文件夹并粘贴到basic-11.1.0.6.0-linux-x86_64在.bashrc文件 中设置以下路径

导出 $LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/oracle_lib/oracle_instantclient_11_1

导出 $ORACLE_HOME = /oracle_lib/oracle_instantclient_11_1

$ ls /oracle_lib/oracle_instantclient_11_1

您应该找到包含文件列表的包含文件夹

然后使用 $ source ~/.bashrc执行 .bashrc 文件

我已经测试过了。

于 2016-01-07T07:53:20.947 回答