Estou tentando fazer com que o Oracle SQL Developer funcione em 16.04. Eu segui a resposta do PhatHV paraessepergunta, e o aplicativo de desktop abre bem e parece correto, mas quando tento me conectar a um banco de dados (e sei que isso deve funcionar porque me conectei ao mesmo banco de dados no Windows), uma janela de erro aparece 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?
Responder1
Para mim, isso só funciona quando eu 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 a execução sudo ldconfig
não.
Responder2
Ok, agora consegui (com alguma ajuda) corrigir esse problema em dois computadores separados, mas já faz tempo suficiente que não me lembro de tudo o que fizemos para corrigi-lo. Incluirei pelo menos o que me lembro e posso alterar esta resposta mais tarde. Não entendo tudo nos bastidores, então peço desculpas se houver etapas desnecessárias. Porém, como mencionei na pergunta original, segui outra resposta dada pelo PhatHV e não vou repetir aqui os passos ali encontrados. Presume-se que você seguiu o tutorial dele 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 downloadaqui. Selecione o "Instant Client for Linux" que corresponde à sua arquitetura (eu tenho uma máquina de 64 bits, então abri a opção x86-64. Baixe os 5 arquivos a seguir (substituindo o número da versão e a 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 ainda não o tiver, você precisará instalar uma ferramenta chamada alien
:
sudo apt-get install alien
Navegue até o diretório Downloads (ou onde você salvou os arquivos) e execute sudo alien -i
cada arquivo para instalá-lo. Usamos alien
porque primeiro os converte .deb
antes de instalá-los. Como observação, alien
não produz muita saída imediatamente, então pode parecer que não está fazendo nada, mas prometo que está.
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 variáveis de perfil e ambiente
Você precisará ser um usuário root para todos esses comandos. Execute sudo su
para fazer 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 ORACLE_HOME
variável. 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 fazê-lo para que meus .ora
arquivos não fiquem em um diretório dependente de versão (como 12.2
).
Editar /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
Depois de terminar de editar todos esses arquivos, execute
ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment
Clique <Ctrl> + D
ou digite exit
para reverter para um usuário normal.
Adicionar como driver de terceiros
Não sei se esta etapa é estritamente necessária, mas funciona no meu computador. Se você abrir o SQL Developer, poderá navegar Tools -> Preferences -> Database -> Third Party JDBC Drivers
e clicar em Add Entry
. Abra /usr/lib/oracle/12.2/client64
e clique em lib
. Ele será destacado e você poderá clicar select
para adicioná-lo à lista.
Após esta etapa você precisará fechar e reabrir o SQL Developer. Depois de fazer tudo isso,esperançosamentevocê não receberá mais erros.