Я пытаюсь заставить Oracle Разработчик SQL работать в 16,04. Я следовал ответу PhatHV на этот вопрос, и настольное приложение открывается прекрасный и кажется корректным, но когда я пытаюсь соединиться с базой данных (и я знаю, что это должно работать, потому что я соединился с той же базой данных в Windows), ошибочное окно открывается, говоря
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
Кто-либо знает то, что вызывает эту ошибку и как зафиксировать ее?
Для меня это только работает, когда я установил переменную среды LD_LIBRARY_PATH на каталог Instant Client, делая, таким образом, в/etc/ld.so.conf.d/oracle.conf и работая sudo ldconfig
не делает.
Хорошо, мне теперь удалось (с некоторой справкой) решить эту проблему на двух отдельных компьютерах, но это было достаточно длинно, что я не помню все, что мы сделали для фиксации ее. Я буду включать, по крайней мере, что я помню и могу исправить этот ответ позже. Я не понимаю все под капотом, таким образом, я приношу извинения, если существуют ненужные шаги. Однако как я упомянул в исходном вопросе, я следовал другому ответу, данному PhatHV, и я не повторю здесь шаги, найденные там. Предполагается, что Вы следовали его учебному руководству прежде, чем прибыть сюда.
Для версии 4.2.0 Разработчика SQL я должен был получить версию 12.2.0.1.0 Мгновенного Клиента. Можно найти загрузку здесь. Выберите "Мгновенный Клиент для Linux", который соответствует Вашей архитектуре (у меня есть машина на 64 бита, таким образом, я открыл x86-64 опцию. Загрузите следующие 5 файлов (заменяющий номером версии и архитектурой в соответствующих случаях):
Если у Вас уже не будет его, то необходимо будет установить названный инструмент alien
:
sudo apt-get install alien
Перейдите к своему каталогу Downloads (или везде, где Вы сохранили файлы), и работать 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
входить в систему как корень.
Править /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 можно перейти к Tools -> Preferences -> Database -> Third Party JDBC Drivers
и нажмите Add Entry
. Открытый для /usr/lib/oracle/12.2/client64
и нажмите lib
. Это будет hilight это, и затем можно нажать select
добавить его к списку.
После этого шага необходимо будет закрыть и вновь открыть Разработчика SQL. После того как Вы сделали все это, надо надеяться, Вы не будете больше получать ошибки.