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 не делает.

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