Я пытаюсь заставить Oracle SQL Developer работать в 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, и я не буду повторять здесь шаги, найденные там. Предполагается, что вы последовали его учебнику, прежде чем приходить сюда.
Для SQL Developer версии 4.2.0 мне нужно было получить версию 12.2.0.1.0 из Мгновенный клиент. Вы можете скачать здесь. Выберите «Мгновенный клиент для 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
Перейдите в каталог загрузки (или где бы вы не сохранили файлы) и запустить 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, чтобы вернуться к обычным пользователям.
I не знаю, нужен ли этот шаг строго, но он работает на моем компьютере. Если вы откроете 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 - нет.
Хорошо, теперь мне удалось (с некоторой помощью) исправить эту проблему на двух отдельных компьютерах, но это было достаточно долго, что я не помню всего, что мы сделали, чтобы исправить это. Я включу, по крайней мере, то, что помню, и позже могу поправить этот ответ. Я не понимаю все под капотом, поэтому я извиняюсь, если есть ненужные шаги. Однако, как я упоминал в первоначальном вопросе, я последовал за другим ответом, данным PhatHV, и я не буду повторять здесь шаги, найденные там. Предполагается, что вы последовали его учебнику, прежде чем приходить сюда.
Для SQL Developer версии 4.2.0 мне нужно было получить версию 12.2.0.1.0 из Мгновенный клиент. Вы можете скачать здесь. Выберите «Мгновенный клиент для 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
Перейдите в каталог загрузки (или где бы вы не сохранили файлы) и запустить 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, чтобы вернуться к обычным пользователям.
I не знаю, нужен ли этот шаг строго, но он работает на моем компьютере. Если вы откроете SQL Developer, вы можете перейти к Tools -> Preferences -> Database -> Third Party JDBC Drivers и нажать Add Entry. Откройте /usr/lib/oracle/12.2/client64 и нажмите lib. Он будет высвечивать его, а затем вы можете щелкнуть select, чтобы добавить его в список.
После этого шага вам нужно будет закрыть и повторно открыть SQL Developer. Как только вы все это сделали, надеюсь, вы больше не получите ошибок.