cx_Oracle ошибка ORA-24315 иногда при подключении

Я написал сценарий и запустил его на настольном компьютере «A», нацеленным на базу данных Oracle (10g) и сервер приложений на настольном компьютере «B». Все прошло без проблем.

Затем я скопировал сценарий на рабочий стол «B», и он выплюнул следующее: «ORA-24315: недопустимый тип атрибута» в следующем фрагменте:

cx_dsn = cx_Oracle.makedsn(cx_hostname, cx_port, cx_SID)
cx_connection = cx_Oracle.Connection(cx_username + '/' + cx_password + '@'+ cx_dsn )

Обе машины были настроены следующим образом:

  • Windows 7 (64-битная)
  • 32-битная версия Python (ActiveState)
  • pypm install cx-oracle (что привело к версии cx_Oracle.clientversion () = (11, 2, 0, 3, 0) - Да, это указывает на v11, но сработало против версии 10g с рабочего стола 'A')

Однако на настольном компьютере «B» были установлены Oracle 10g и WebSphere 7 - на настольном компьютере «A» не было

Я искал, и многие люди сталкивались с этой проблемой или чем-то подобным, но в целом единственными предлагаемыми решениями были:

  1. Убедитесь, что путь не ссылается на библиотеки Oracle перед библиотеками Python - я предполагаю, что здесь предполагается, что установка Oracle на настольном компьютере B мешает. Поэтому я настроил путь так, чтобы он ссылался только на Python (без упоминания об Oracle и т. Д.) - это не помогло
  2. Убедитесь, что вы используете 32-битную версию всего или 64-битную версию всего - я использовал 32-битную версию всего, что касается Python.
  3. Убедитесь, что cx-Oracle совпадает с базой данных, на которую вы нацеливаетесь ... ладно, похоже, у меня проблема, но ... Странно то, что скрипт действительно работает на рабочем столе 'A', поэтому я полагаю, что это должно быть что-то окружающее. рабочий стол "B". Итак, я пошел и установил специальную версию cx_Oracle 10g. Никакого успеха. (Этот запрос https://stackoverflow.com/questions/10456598/cx-oracle-multiple-instances-of-oracle-10-and-11-plus-oracle-home не ответили, но звучит похоже)

Итак, я застрял - есть предложения?


person belvoir    schedule 08.10.2012    source источник
comment
Убедитесь, что все ваши переменные и литералы являются байтовыми строками, а не строками Unicode. Может быть так.   -  person Pedro Romano    schedule 09.10.2012
comment
Я попробовал это и подтвердил, что это определенно не проблема строки Unicode. Я повторил установку на чистой машине XP, и она сработала без проблем с подключением к рабочему столу 'B', поэтому cx_Oracle должен собирать что-то из базы данных Oracle, установленной локально на рабочем столе 'B' - когда я получу разрешение, я опубликую решение .   -  person belvoir    schedule 11.10.2012


Ответы (2)


Мы столкнулись с ошибкой ORA-24315 после установки второго клиента Oracle в другой версии. В переменной окружения PATH мы просто изменили порядок записей путей Oracle. Вероятно, cx_Oracle учитывает только первое появление Oracle в переменной PATH.

Наша конфигурация: Win 7, Oracle 11.2.0.3, cx_Oracle-5.1.1-11g.win32-py2.6

Изменение: Дополнительно установлен Oracle 10.2.0

Результирующее сообщение об ошибке: cx_Oracle.DatabaseError: ORA-24315: недопустимый тип атрибута

Как мы заставили его снова работать: изменили порядок PATH с path_to_Oracle10; path_to_Oracle11; ... на path_to_Oracle11; path_to_Oracle10; ...

person DanielGKiel    schedule 12.01.2015

Я получал ошибку ORA-24315, как бы я ни пытался подключиться.

Решение:

Я изначально скачал / установил версию Ora11g, но база 10g. Я установил 10g версию cx_Oracle, и соединение сработало с первого раза.

person Vishnu Reddy    schedule 28.01.2017