Oracle SQLDeveloper "нет ocijdbc12 в java.library.path"
Я пытаюсь заставить Oracle SQL Developer работать в 16.04. Я последовал за ответом PhatHV на этот вопрос, и приложение для настольного компьютера открывается нормально и выглядит правильно, но когда я пытаюсь подключиться к базе данных (и я знаю, что это должно работать, потому что я подключился к той же базе данных в Windows), появляется окно с ошибкой всплывает, говоря
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
Кто-нибудь знает, что вызывает эту ошибку и как ее исправить?
2 ответа
Хорошо, теперь мне удалось (с некоторой помощью) исправить эту проблему на двух отдельных компьютерах, но прошло достаточно времени, и я не помню всего, что мы делали, чтобы это исправить. Я включу, по крайней мере, то, что помню, и позже смогу исправить этот ответ. Я не все понимаю под капотом, поэтому я прошу прощения, если есть ненужные шаги. Однако, как я уже упоминал в первоначальном вопросе, я последовал другому ответу PhatHV, и я не буду повторять здесь шаги, найденные там. Предполагается, что вы следовали его руководству до того, как пришли сюда.
Установите Oracle Instant Client
Для SQL Developer версии 4.2.0 мне нужно было получить версию 12.2.0.1.0 для Instant Client. Вы можете найти загрузку здесь. Выберите "Instant Client для Linux", который соответствует вашей архитектуре (у меня есть 64-битная машина, поэтому я открыл параметр x86-64. Загрузите следующие 5 файлов (при необходимости указав номер версии и архитектуру):
- Оракул-instantclient12.2 основного-12.2.0.1.0-1.x86-64.rpm
- Оракул-instantclient12.2-разви-12.2.0.1.0-1.x86-64.rpm
- Оракул-instantclient12.2-12.2.0.1.0-1.x86-64.rpm-JDBC
- Оракул-instantclient12.2-12.2.0.1.0-1.x86-64.rpm-ODBC
- Оракул-instantclient12.2-SQLPLUS-12.2.0.1.0-1.x86-64.rpm
Если у вас его еще нет, вам нужно установить инструмент под названием alien
:
sudo apt-get install alien
Перейдите в каталог загрузок (или куда вы сохранили файлы) и запустите sudo alien -i
на каждый файл, чтобы установить его. Мы используем alien
потому что он сначала преобразует их в .deb
перед их установкой. Как примечание, alien
не дает большого выхода сразу, так что может показаться, что он ничего не делает, но я обещаю, что это так.
sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm
Изменить профиль и переменные среды
Вы должны быть пользователем root для всех этих команд. Бежать sudo su
войти в систему как root.
редактировать /etc/profile.d/oracle.sh
содержать следующее:
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export TNS_ADMIN=/usr/lib/oracle/ora
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Обратите внимание, здесь номер версии в ORACLE_HOME
переменная. Опять мой 12.2
, но ваш может быть что-то еще. Также распространено установить TNS_ADMIN=$ORACLE_HOME/ora
, но я выбрал не так, чтобы мой .ora
файлы не находятся в зависящем от версии каталоге (например, 12.2
).
редактировать /etc/ld.so.conf.d/oracle.conf
содержать
/usr/lib/oracle/12.2/client64/lib/
Снова обратите внимание на номер версии.
Наконец, в /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/default-java/"
CLASSPATH=/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/include:/usr/lib/oracle/12.2/client64/lib
Как только вы закончите редактировать все эти файлы, запустите
ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment
Удар <Ctrl> + D
или введите exit
вернуться к обычному пользователю.
Добавить в качестве стороннего драйвера
Я не знаю, является ли этот шаг строго необходимым, но он работает на моем компьютере. Если вы откроете SQL Developer, вы можете перейти к Tools -> Preferences -> Database -> Third Party JDBC Drivers
и нажмите Add Entry
, Открыт кому-либо /usr/lib/oracle/12.2/client64
и нажмите на lib
, Это будет подсвечено, а затем вы можете нажать select
добавить его в список.
После этого шага вам нужно будет закрыть и заново открыть SQL Developer. Как только вы все это сделаете, надеюсь, вы не получите больше ошибок.
Для меня это работает, только когда я устанавливаю переменную среды LD_LIBRARY_PATH в каталог Instant Client, делая это в /etc/ld.so.conf.d/oracle.conf и выполняя sudo ldconfig
не делает.