Estoy intentando que Oracle SQL Developer funcione en 16.04. Seguí la respuesta de PhatHV aestepregunta, y la aplicación de escritorio se abre bien y parece correcta, pero cuando intento conectarme a una base de datos (y sé que esto debería funcionar porque me conecté a la misma base de datos en Windows), aparece una ventana de error que dice
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
¿Alguien sabe a qué se debe este error y cómo solucionarlo?
Respuesta1
Para mí, solo funciona cuando configuro la variable de entorno LD_LIBRARY_PATH en el directorio de Instant Client, haciéndolo en /etc/ld.so.conf.d/oracle.conf y al ejecutarlo sudo ldconfig
no funciona.
Respuesta2
Bien, ahora he logrado (con algo de ayuda) solucionar este problema en dos computadoras separadas, pero ha pasado suficiente tiempo como para no recordar todo lo que hicimos para solucionarlo. Incluiré al menos lo que recuerdo y es posible que modifique esta respuesta más adelante. No entiendo todo lo que hay debajo del capó, así que me disculpo si hay pasos innecesarios. Sin embargo, como mencioné en la pregunta original, seguí otra respuesta dada por PhatHV y no repetiré aquí los pasos que encontré allí. Se supone que has seguido su tutorial antes de venir aquí.
Instalar el cliente instantáneo de Oracle
Para la versión 4.2.0 de SQL Developer, necesitaba obtener la versión 12.2.0.1.0 de Instant Client. Puedes encontrar la descarga.aquí. Seleccione el "Cliente instantáneo para Linux" que corresponda a su arquitectura (tengo una máquina de 64 bits, así que abrí la opción x86-64. Descargue los siguientes 5 archivos (sustituyendo el número de versión y la arquitectura cuando corresponda):
- 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
Si aún no la tienes, necesitarás instalar una herramienta llamada alien
:
sudo apt-get install alien
Navegue hasta su directorio de Descargas (o donde guardó los archivos) y ejecútelo sudo alien -i
en cada archivo para instalarlo. Lo usamos alien
porque primero los convierte .deb
antes de instalarlos. Como nota, alien
no produce mucho resultado de inmediato, por lo que puede parecer que no está haciendo nada, pero lo prometo.
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 variables de perfil y entorno
Deberá ser usuario root para todos estos comandos. Ejecute sudo su
para iniciar sesión como root.
Edite /etc/profile.d/oracle.sh
para que contenga lo siguiente:
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
Tenga en cuenta aquí el número de versión en la ORACLE_HOME
variable. De nuevo, el mío lo es 12.2
, pero el tuyo podría ser otra cosa. También es común configurar TNS_ADMIN=$ORACLE_HOME/ora
, pero elegí no hacerlo para que mis .ora
archivos no estén en un directorio que dependa de la versión (como 12.2
).
Editar /etc/ld.so.conf.d/oracle.conf
para contener
/usr/lib/oracle/12.2/client64/lib/
Nuevamente, tenga en cuenta el número de versión.
Finalmente, en/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
Una vez que haya terminado de editar todos estos archivos, ejecute
ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment
Pulsa <Ctrl> + D
o escribe exit
para volver a ser un usuario normal.
Agregar como controlador de terceros
No sé si este paso es estrictamente necesario, pero funciona en mi computadora. Si abre SQL Developer, puede navegar Tools -> Preferences -> Database -> Third Party JDBC Drivers
y hacer clic en Add Entry
. Abra /usr/lib/oracle/12.2/client64
y haga clic en lib
. Lo resaltará y luego podrá hacer clic select
para agregarlo a la lista.
Después de este paso, deberá cerrar y volver a abrir SQL Developer. Una vez que hayas hecho todo eso,con un poco de suerteNo obtendrás más errores.