Para mim, só funciona quando defino a variável de ambiente LD_LIBRARY_PATH para o diretório do Instant Client, fazendo isso em /etc/ld.so.conf.d/oracle.conf e executando sudo ldconfig
não.
Estou tentando fazer com que o Oracle SQL Developer funcione no 16.04. Eu segui a resposta do PhatHV para esta questão , e o aplicativo de desktop abre bem e parece correto, mas quando eu tento conectar a um banco de dados (e eu sei que isso deve funcionar porque eu tenho conectado ao mesmo banco de dados no Windows), aparece uma janela de erro dizendo
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
Alguém sabe o que causa esse erro e como corrigi-lo?
Para mim, só funciona quando defino a variável de ambiente LD_LIBRARY_PATH para o diretório do Instant Client, fazendo isso em /etc/ld.so.conf.d/oracle.conf e executando sudo ldconfig
não.
Ok, agora consegui (com alguma ajuda) corrigir esse problema em dois computadores separados, mas já faz tempo que não lembro de tudo o que fizemos para solucioná-lo. Vou incluir pelo menos o que me lembro e posso corrigir essa resposta mais tarde. Eu não entendo tudo sob o capô, então peço desculpas se houver etapas desnecessárias. No entanto, como mencionei na pergunta original, segui outra resposta dada por PhatHV, e não repetirei aqui os passos encontrados ali. Supõe-se que você tenha seguido seu tutorial antes de vir aqui.
Para o SQL Developer versão 4.2.0, precisei obter a versão 12.2.0.1.0 do Instant Client. Você pode encontrar o download aqui . Selecione o "Instant Client para Linux" que corresponde à sua arquitetura (eu tenho uma máquina de 64 bits, então eu abri a opção x86-64. Faça o download dos 5 arquivos a seguir (substituindo o número da versão e arquitetura quando apropriado):
Se você ainda não o fez, precisará instalar uma ferramenta chamada alien
:
sudo apt-get install alien
Navegue até o diretório Downloads (ou onde quer que você salvou os arquivos) e execute sudo alien -i
em cada arquivo para instalá-lo. Usamos alien
porque primeiro os converte em .deb
antes de instalá-los. Como nota, alien
não produz muita saída imediatamente, então pode parecer que não está fazendo nada, mas eu prometo que é.
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
Você precisará ser um usuário root para todos esses comandos. Execute sudo su
para efetuar login como root.
Edite /etc/profile.d/oracle.sh
para conter o seguinte:
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
Observe aqui o número da versão na variável ORACLE_HOME
. Novamente, o meu é 12.2
, mas o seu pode ser outra coisa. Também é comum definir TNS_ADMIN=$ORACLE_HOME/ora
, mas optei por não fazer com que meus arquivos .ora
não estejam em um diretório dependente de versão (como 12.2
).
Edite /etc/ld.so.conf.d/oracle.conf
para conter
/usr/lib/oracle/12.2/client64/lib/
Novamente, observe o número da versão.
Finalmente, em /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
Quando terminar de editar todos esses arquivos, execute
ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment
Acerte <Ctrl> + D
ou digite exit
para reverter para um usuário normal.
Não sei se este passo é estritamente necessário, mas funciona no meu computador. Se você abrir o SQL Developer, poderá navegar para Tools -> Preferences -> Database -> Third Party JDBC Drivers
e clicar em Add Entry
. Abra para /usr/lib/oracle/12.2/client64
e clique em lib
. Isso fará o hilight e você poderá clicar em select
para adicioná-lo à lista.
Após esta etapa, você precisará fechar e reabrir o SQL Developer. Uma vez que você tenha feito tudo isso, esperançosamente você não terá mais nenhum erro.