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 に cx_Oracle の 32 ビット バージョンをインストールしましたが、

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%たところ、Env 変数は Oracle クライアントがインストールされているディレクトリに設定されています。

私が考えることができる唯一の問題は、Oracle 10g 用に作成された cx_Oracle が、データベース (私のデータベースは 10g) ではなく、クライアントが 10g (私のデータベースは 9) であることを参照していることです... または 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/

...しかし、Oracle 9 クライアント用のものには、古いバージョンの Python (2.6) が必要になる場合があります。

于 2011-06-22T18:34:53.773 に答える