Oracle SQLDeveloper “no ocijdbc12 em java.library.path”

0

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?

    
por TallChuck 24.05.2017 / 18:54

2 respostas

0

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.

    
por Alexander Hartmaier 19.06.2017 / 10:32
0

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.

Instale o Oracle Instant Client

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):

  • 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

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

Editar perfil e variáveis de ambiente

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.

Adicionar como um driver de terceiros

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.

    
por TallChuck 31.08.2017 / 01:29