Use tnsnames.ora en Oracle SQL Developer

138

Estoy evaluando Oracle SQL Developer .

My tnsnames.oraestá poblado, y tnspinguna conexión definida en tnsnames.orafunciona bien. Aún así, SQL Developer no muestra ninguna conexión.

Oracle SQL Developer Soars menciona que si

si tiene el software de cliente Oracle y un archivo tnsnames.ora ya instalado en su máquina, Oracle SQL Developer completará automáticamente el navegador Connections de los nombres de servicios de red definidos en tnsnames.ora.

También intenté establecer mi TNS_ADMINvariable de entorno, pero después de reiniciar SQL Developer todavía no se muestran conexiones.

¿Algunas ideas?
¿Alguien que haya trabajado con éxito con SQL Developer y tnsnames.ora?

Peter Lang
fuente
Descargué e instalé el Oracle SQL Developer para conectarme a una base de datos Oracle 11g ya existente. Pero parece que también tendré que descargar e instalar el software de cliente Oracle, ¿cuál uso si estoy en Windows 10?
VoodooChild

Respuestas:

219
  • En SQLDeveloper navegar Tools --> Preferences, como se muestra en la imagen a continuación.

    Preferencias de acceso de SQLDeveloper

  • En las opciones de Preferenciasexpand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory donde tnsnames.ora presente.
  • Luego haga clic en Ok , como se muestra en el siguiente diagrama.
    tnsnames.ora disponible enDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    Actualización de SQLDeveloper directorio tnsnames

Ahora puede conectarse a través de las opciones de TNSnames .

Chandra Sekhar
fuente
44
todos, solo una pequeña actualización en esta publicación antigua (pero bastante útil): no intente usar un enlace simbólico en Windows. El desarrollador de SQL no parece saber cómo usarlo. Me hizo perder algo de tiempo. Espero que salve el tuyo.
Hellday5432
@ Hellday5432 - Sí, eso es correcto. SQL Dev se ejecuta en Java que no entiende los accesos directos; por ejemplo, al abrir un archivo, no podemos usar un acceso directo para saltar a un directorio.
Kent Pawar
55
Acceso directo de Windows! = Enlace simbólico. howtogeek.com/howto/16226/…
Matt Lachman el
Descargué e instalé el Oracle SQL Developer para conectarme a una base de datos Oracle 11g ya existente. Pero parece que también tendré que descargar e instalar el software de cliente Oracle, ¿cuál uso si estoy en Windows 10?
VoodooChild
No veo la opción de directorio Tnsnanes en mi SQL Developer versión 1.5.5.
Amit Chaurasia
24

Esta excelente respuesta a una pregunta similar (que desafortunadamente no pude encontrar antes) me ayudó a resolver el problema.

Copiar contenido de la respuesta referenciada:

SQL Developer buscará en la siguiente ubicación en este orden un archivo tnsnames.ora

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
TNS_ADMIN clave de búsqueda en el registro
/etc/tnsnames.ora (sin Windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Si su archivo tnsnames.ora no se reconoce, utilice el siguiente procedimiento:

Defina una variable ambiental llamada TNS_ADMIN para apuntar a la carpeta que contiene su archivo tnsnames.ora.

En Windows, esto se hace navegando a Panel de control> Sistema> Configuración avanzada del sistema> Variables de entorno ...
En Linux, defina la variable TNS_ADMIN en el archivo .profile en su directorio de inicio.

Confirme que el sistema operativo reconoce esta variable ambiental

Desde la línea de comandos de Windows: echo% TNS_ADMIN%

Desde Linux: echo $ TNS_ADMIN

Reinicie SQL Developer ahora en SQL Developer, haga clic derecho en Conexiones y seleccione Nueva conexión .... Seleccione TNS como tipo de conexión en el cuadro desplegable. Sus entradas de tnsnames.ora ahora deberían aparecer aquí.

Peter Lang
fuente
3
Sé que ha pasado un tiempo, pero ¿puedes sacar la parte relevante de la respuesta aquí? En caso de que esa respuesta (o incluso la pregunta) alguna vez se elimine.
Dennis Meng
1
básicamente se redondea a configurar la variable de sistema TNS_ADMIN (porque SQL Developer busca allí ~ primero) y, después de reiniciar SQL Developer, elegir Nueva conexión y en la lista desplegable Tipo de conexión, en lugar de Básico, elegir TNS, por lo que tnsnames se ve bien, pero no debe esperar que las conexiones se llenen automáticamente (ese fue el caso conmigo)
hello_earth
la búsqueda me llevó a ella, así que he actualizado la respuesta ya que ya hay referencia al autor @DennisMeng
TheGameiswar
7

Tuve el mismo problema, tnsnames.orafuncionó bien para todas las demás herramientas, pero SQL Developer no lo usó. Intenté todas las sugerencias en la web que pude encontrar, incluidas las soluciones en el enlace proporcionado aquí.
Nada funcionó.

Resulta que la base de datos fue el almacenamiento en caché copias de seguridad tnsnames.oracomo tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bketc. Estos archivos no eran legibles para el usuario medio.

Sospecho que sqldeveloper coincide con el patrón del nombre e intentaba leer una de estas copias de seguridad y no pudo. Por lo tanto, simplemente falla con gracia y no muestra nada en la lista desplegable.

La solución es hacer que todos los archivos sean legibles o eliminar o mover las copias de seguridad fuera del directorio de administración.

Jim
fuente
Eso es probablemente exactamente lo que estás viendo. SQL Plus y SQL Developer ven / analizan / leen tnsnames , por lo que si uno es malo, eso podría caer en cascada y causar su problema.
thatjeffsmith
0

En las versiones más nuevas de macOS, también hay que configurarlo java.library.path. La forma más fácil / segura de hacerlo [1] es creando un ~/.sqldeveloper/<version>/sqldeveloper.confarchivo y rellenándolo como tal:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

dinvlad
fuente