Использование Python 3.4 для подключения к Oracle 11 (64 бит), но я не могу получить соединение независимо от того, что я пытаюсь. Я пробовал как пакет cx_Oracle, так и пакет pyobbc без успеха.Проблемы с Python Подключение к Oracle (cx_Oracle и Pyodbc)
Попытки с cx_Oracle
conn = cx_Oracle.connect('username/[email protected]')
и
oradsn = cx_Oracle.makedsn(host, port, server)
conn = cx_Oracle.connect(user="username, password=password, dsn=oradsn")
Ошибка: Не удается получить среда Oracle обрабатывать
Попытки с pyodbc
conn = pypyodbc.connect('DRIVER={ORACLE ODBC DRIVER};DBQ=dsn name;UID=username;PWD=password')
и
conn = pyodbc.connect('DSN=dsn;SERVER=server;UID=username;PWD=password')
Ошибка: Указанный драйвер не может быть загружен из-за ошибки системы 1114: динамически подключаемой библиотеки (DDL) инициализации процедура не удалась. (< ---- sqora32.dll находится в этом месте, я проверил)
переменную окружения:
ORACLE_HOME = C:\Oracle\Ora11_x64
Есть предложения?
Благодаря
Спасибо за ответ! Несколько вопросов: 1. Какова должна быть переменная PATH? 2. Я не могу подключиться через SQL Plus (ошибка адаптера TNS (?)). Однако я могу подключиться через Oracle SQL Developer. Не уверен, что это значит. –
Переменная среды PATH должна включать расположение исполняемых и клиентских библиотек SQL * Plus. SQL Developer использует Java, тогда как SQL * Plus (и cx_Oracle) использует OCI, поэтому они используют несколько разных методов для подключения. Ошибка адаптера TNS означает, что вы неправильно установили строку подключения. Если вы предоставите подробную информацию о том, как вы подключаетесь, это может помочь мне в дальнейшем. :-) –
Хорошо, я изменил строку подключения и смог подключиться к SQLPlus! Хорошие новости. НО я все еще получаю сообщение «Невозможно получить ошибку обработки среды Oracle. моя переменная PATH имеет «C: \ Oracle \ Ora11_x64 \ BIN» в строке. Я должен упомянуть, что файл tnsnames.ora НЕ содержит мое соединение, и у меня нет прав доступа для изменения этого файла. Смогу ли я подключиться с помощью Cx_oracle? –