Настройка Cx_Oracle

Я бегаю ...

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

Я установил 32-битную версию cx_Oracle для Oracle 10g, но получаю

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.

Единственная проблема, о которой я могу думать, заключается в том, что cx_Oracle, созданный для Oracle 10g, относится к клиенту 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

person Community    schedule 22.06.2011    source источник
comment
просто чтобы подтвердить, что вы используете 32-битный Python с 32-битным клиентом cx_Oracle.   -  person Gerrat    schedule 22.06.2011


Ответы (1)


Ваш клиент Oracle должен соответствовать версии cx_Oracle. Любая причина для использования клиента Oracle 9? Вы должны иметь возможность просто загрузить и установить версию 10 (или даже клиент 11) и соответствующую версию cx_Oracle. Оба они будут работать с Oracle 10g.

Мы используем Oracle 10g на работе, а я использую клиент 11g (и соответствующую версию cx_Oracle).

EDIT: я нашел некоторые старые версии cx_Oracle здесь: http://sourceforge.net/projects/cx-oracle/files/

... но вам может понадобиться более старая версия Python (2.6) для тех, которые предназначены для клиента Oracle 9.

person Gerrat    schedule 22.06.2011
comment
Я слышал, что ранние выпуски 10 на самом деле не работают с пакетом cx_Oracle. Знаешь что-нибудь об этом? Потенциально я мог бы получить более новую версию, но это потребовало бы модификации ряда систем, и я просто надеялся найти другое решение. - person ; 22.06.2011
comment
@DKGasser: выберите баннер из версии v$... мы используем 64-битную версию 10.2.0.4.0, и cx_Oracle отлично с ней работает... у вас есть неработающие ссылки на нее? - person Gerrat; 22.06.2011
comment
после быстрого поиска в Google появляется это, хотя это не было оригинальным, где я видел упоминание о «феномене» forums.oracle.com/forums/ - person ; 22.06.2011