2015-06-15 3 views
0

Я пытаюсь подключиться к Oracle DB v.9. Я загрузил последний Instant Client (12.1.0.2.0) + SDK, затем cx_Oracle. При попытке подключения к БД говоритcx_Oracle импортирует неправильный модуль

cx_Oracle.DatabaseError: ORA-03134: Connections to this server version are no longer supported. 

поэтому я попытался установить более старую версию Instant Client 10.2.0.5:

sudo yum remove oracle-instantclient12.1-basic 
sudo yum install /vagrant/oracle-instantclient-devel-10.2.0.5-1.x86_64.rpm 

и обновил свой ENV:

export ORACLE_HOME=/usr/lib/oracle/10.2.0.5/client64/ 
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.5/client64/lib/ 

но когда я пытаюсь запустить свой скрипт Python, cx_Oracle говорит:

ImportError: libclntsh.so.12.1: cannot open shared object file: No such file or directory 

Конечно, нет такого файла или каталога: у меня есть версия 10.2.0.5, а не 12.1. И мой файл называется libclntsh.so.10.1, а не libclntsh.so.12.1. Как сделать импорт cx_Oracle правильным файлом? Или есть способ заставить Instant Client v.12 работать с сервером v.9?

ответ

0

Oracle гарантирует обратную совместимость для двух версий. Таким образом, версия 10 может получить доступ к версиям 8, 9, 10. Версия 12 может работать только с версией 10 и выше.

Вам необходимо выполнить чистую установку правильного клиента.

+1

Как мне выполнить чистую установку, за исключением 'yum remove' нового клиента? – kurtgn

0

Созданный или установленный cx_Oracle был создан против Oracle 12.1. Вам нужно будет построить один против Oracle 10.2. Если вы убедитесь, что старый мгновенный клиент удален, а новый - на месте, вы можете просто запустить pip install cx_Oracle. Версии 5.2 и cx_Oracle теперь могут найти мгновенного клиента и скомпилировать его без дополнительной помощи. Обратите внимание, что вам нужно убедиться, что у вас установлен пакет instantclient-devel для этого.

Смежные вопросы