cx_Oracle.Connection выдает cx_Oracle.InternalError: Нет ошибки Oracle?

Я установил модуль Oracle Python cx_Oracle на мою Linux-машину. Пользователь oracle и пользователь root могут импортировать cx_Oracle и создать соединение с базой данных, используя cx_Oracle.Connection(...).

Другие пользователи на сервере также могут импортировать cx_Oracle, но при попытке создать объект подключения выдается следующее исключение:

>>> cx_Oracle.Connection('....')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.InternalError: No Oracle error?

Я подтвердил, что для пользователя, которого я пытаюсь заставить работать, установлены все правильные системные переменные, ORACLE_HOME, LD_LIBRARY_PATH, ORACLE_SID и PATH. У этого пользователя также нет проблем с использованием sqlplus и таким образом подключения к базам данных.

Я предполагаю, что это проблема с правами доступа к файлам, так как у пользователей как oracle, так и root нет проблем. Я просто не уверен, какой файл может быть причиной проблемы.

1 ответ

У меня была та же проблема, и для меня это были права доступа для некоторых файлов локали Oracle. Проблема была решена путем $ORACLE_HOME/nls/data и его содержание читаемо.

Чтобы найти проблему, я написал небольшой скрипт test_oracle.py:

import cx_Oracle as oracle
conn = oracle.connect("user/pwd@host:port/SID")

а потом побежал truss python test_oracle.py чтобы найти проблему доступа (в Linux я использовал strace вместо этого, конечно.)

Другие вопросы по тегам