1

我在跑步 ...

SQL*Plus: Release 9.2.X.X.X - Production on Wed Jun 22 13:02:14 2011

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.X.X.X - 64bit Production
With the Partitioning, OLAP and Data Mining options

使用 Python 版本 2.7.1

我为 Oracle 10g 安装了 32 位版本的 cx_Oracle 但我得到了

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import cx_Oracle
ImportError: DLL load failed: The specified procedure could not be found.

当我尝试导入时。

我检查并我的%ORACLE_HOME%环境变量设置为安装我的 Oracle 客户端的目录。

我能想到的唯一问题是为 Oracle 10g 制作的 cx_Oracle 是指客户端是 10g(我的是 9)而不是数据库(我的数据库是 10g)......或者 cx_Oracle 模块是“32 位”是指我的远程数据库是 32 位而不是我的本地计算机。我已经尝试了一些不同的版本,但无济于事。

谢谢。

编辑:

另外,有人告诉我 Oracle 9 应该与某些版本的 cx_Oracle 一起使用。但是哪些版本呢?我找不到这样的版本。这里有什么解决办法吗?

编辑:

我已在本地计算机上更新到 Instantclient 10.2。但是,现在我可以很好地导入 cx_Oracle,但是当我尝试建立连接时,我得到以下信息:

Traceback (most recent call last):
  File "C:\oracleTest.py", line 2, in <module>
    connection = cx_Oracle.connect("username/password@(DESCRIPTION STRING)")
DatabaseError: ORA-12705: Cannot access NLS data files or invalid environment specified
4

1 回答 1

1

您的 Oracle 客户端应与 cx_Oracle 版本匹配。使用 Oracle 9 客户端的任何原因?您应该可以只下载并安装版本 10(甚至是 11 客户端)和匹配的 cx_Oracle 版本。它们都将与 Oracle 10g 一起工作。

我们在工作中使用 Oracle 10g,我使用 11g 客户端(以及相应的 cx_Oracle 版本)。

编辑: 我在这里找到了一些旧版本的 cx_Oracle:http: //sourceforge.net/projects/cx-oracle/files/

...但您可能需要旧版本的 Python (2.6) 用于 Oracle 9 客户端。

于 2011-06-22T18:34:53.773 回答