Я пытаюсь заставить Oracle SQL Developer работать в 16.04. Я следовал ответу PhatHV наэтотвопрос, и приложение для настольного компьютера открывается нормально и выглядит правильно, но когда я пытаюсь подключиться к базе данных (а я знаю, что это должно сработать, потому что я подключался к той же базе данных в Windows), появляется окно с ошибкой, в котором говорится:
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
Кто-нибудь знает, что является причиной этой ошибки и как ее исправить?
решение1
У меня это работает только тогда, когда я устанавливаю переменную среды LD_LIBRARY_PATH в каталог Instant Client, делая это в /etc/ld.so.conf.d/oracle.conf, а запуск sudo ldconfig
не работает.
решение2
Хорошо, теперь мне удалось (с некоторой помощью) исправить эту проблему на двух отдельных компьютерах, но прошло достаточно много времени, чтобы я не помню всего, что мы делали, чтобы исправить это. Я включу по крайней мере то, что я помню, и, возможно, позже исправлю этот ответ. Я не понимаю всего, что находится под капотом, поэтому прошу прощения, если есть ненужные шаги. Однако, как я уже упоминал в исходном вопросе, я следовал другому ответу, данному PhatHV, и я не буду повторять здесь шаги, найденные там. Предполагается, что вы следовали его руководству, прежде чем прийти сюда.
Установите Oracle Instant Client
Для SQL Developer версии 4.2.0 мне нужно было получить версию 12.2.0.1.0 Instant Client. Вы можете найти загрузкуздесь. Выберите «Instant Client for Linux», соответствующий вашей архитектуре (у меня 64-битная машина, поэтому я открыл опцию x86-64). Загрузите следующие 5 файлов (заменив номер версии и архитектуру, где это необходимо):
- oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
- oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
- oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
- oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
- oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm
Если у вас его еще нет, вам необходимо установить инструмент под названием 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
чтобы войти как 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. После того, как вы все это сделаете,с надеждойбольше ошибок не будет.