Los nombres de Oracle TNS no se muestran al agregar una nueva conexión a SQL Developer

93

Estoy intentando conectarme a una base de datos de Oracle con SQL Developer.

Instalé los controladores de Oracle .Net y coloqué el tnsnames.oraarchivo en
C:\Oracle\product\11.1.0\client_1\Network\Admin

Estoy usando el siguiente formato en tnsnames.ora:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

En SQL Developer, cuando intento crear una nueva conexión, no aparecen nombres TNS como opciones.

¿Se me escapa algo?

Americus
fuente

Respuestas:

176

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

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. Clave de búsqueda TNS_ADMIN en el registro
  4. /etc/tnsnames.ora (sin Windows)
  5. $ ORACLE_HOME / network / admin / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Para ver cuál está usando SQL Developer, emita el comando show tnsen la hoja de trabajo

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

  1. Defina una variable de entorno 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 personal.

  2. Confirme que el sistema operativo está reconociendo esta variable ambiental

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

    Desde linux: echo $ TNS_ADMIN

  3. Reiniciar SQL Developer

  4. 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 mostrarse aquí.
JaseAnderson
fuente
1
Para mí: $ HOME / .tnsnames.ora no funcionó ... Usé $ HOME / tnsnames.ora en su lugar. También tenga en cuenta: deberá ir a Herramientas -> Preferencias, buscar "tns" y apuntar el directorio a $ HOME
Ryan Delucchi
A pesar de que esto está en las notas de la versión para la versión 1.5 del desarrollador de SQL, descubrí que en Ubuntu 12.04 LTS solo funcionaba la # 5 . Pruebe estos pasos para verificar si ese es su caso: forums.oracle.com/message/2769285#2769285 . Notable : el autor tuvo el problema en Win Vista.
LAFK dice Reincorporar a Monica
Me funcionó en Windows. Registrando cosas para siempre FTW!
Isaac
Configurar TNS_ADMIN no funcionó para mí. En su lugar, busqué en la computadora todos los archivos TNSNAMES y actualicé el contenido de todos ellos. No tengo idea de por qué Windows 7 Sql Developer persistió en el uso de algún otro archivo TNSNAMES en alguna carpeta antigua.
Ben
1
Nota: $TNS_ADMIN¿el DIRECTORIO no es el .oraarchivo real
Geneorama
30

Abra SQL Developer. Vaya a Herramientas -> Preferencias -> Bases de datos -> Avanzado Luego configure explícitamente el Directorio de Tnsnames

Mi TNSNAMES se configuró correctamente y pude conectarme a Toad, SQL * Plus, etc. pero necesitaba hacer esto para que SQL Developer funcionara. Quizás fue un problema de Win 7, ya que también fue una molestia instalarlo.

Paul Mattey
fuente
La respuesta aceptada no funcionó para mí, pero esto sí (Windows Server 2008R2)
Josh Werts
Tuve el mismo problema, pero SQL Developer también buscó en% userprofile% \ tnsnames.ora antes de% TNS_ADMIN% \ tnsnames.ora, y ahí es donde tenía el archivo tnsnames.ora adicional.
MBWise
15

En SQLDeveloperTools --> Preferences , busque , como se muestra en la siguiente imagen.

ingrese la descripción de la imagen aquí

En las opciones de Preferenciasexpand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory donde tnsnames.ora presente.
Luego haga clic en Aceptar .
como se muestra en el diagrama de abajo.

ingrese la descripción de la imagen aquí

¡Has hecho!

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

Chandra Sekhar
fuente
No puedo encontrar "Databse: Advanced" ==> mi versión es 1.5.5
Tarek El-Mallah
1
Para versiones inferiores a 2.1 o si no ha especificado un directorio Tnsnames en 2.1 o superior, continúe como se especifica en la respuesta de @JasonAnderson .
Chandra Sekhar
No tengo la opción Directorio de Tnsnames en Herramientas-> Preferencias-> Databaes-> Menú de parámetros avanzados. Estoy usando SqlDeveloper v1.1.3
Ahmedov
14

Siempre puede averiguar la ubicación del archivo tnsnames.ora que se está utilizando ejecutando TNSPING para verificar la conectividad (9i o posterior):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

A veces, el problema es con la entrada que hizo en tnsnames.ora, no que el sistema no pueda encontrarla. Dicho esto, estoy de acuerdo en que tener un conjunto de variables de entorno tns_admin es algo bueno, ya que evita los problemas inevitables que surgen al determinar exactamente qué archivo tnsnames se está utilizando en sistemas con múltiples hogares de Oracle.

DCookie
fuente
¿Cómo puedo instalar la herramienta tnsping?
Kiquenet
En la instalación del cliente hay una casilla de verificación para Herramientas de base de datos o algo así.
DCookie
2

Los pasos mencionados por Jason son muy buenos y deberían funcionar. Sin embargo, hay un pequeño giro con SQL Developer. Almacena en caché las especificaciones de conexión (host, nombre del servicio, puerto) la primera vez que lee el archivo tnsnames.ora. Entonces, no invalida las especificaciones cuando la entrada original se elimina del archivo tnsname.ora. La caché persiste incluso después de que SQL Developer se haya terminado y reiniciado. Esta no es una forma tan ilógica de manejar la situación. Incluso si un archivo tnsnames.ora no está disponible temporalmente, SQL Developer aún puede realizar la conexión siempre que las especificaciones originales sigan siendo verdaderas. El problema viene con su próximo pequeño giro. SQL Developer trata los nombres de servicio en el archivo tnsnames.ora como valores que distinguen entre mayúsculas y minúsculas al resolver la conexión. Entonces, si solía tener un nombre de entrada ABCD. world en el archivo y lo reemplazó con una nueva entrada denominada abcd.world, SQL Developer NO actualizaría sus especificaciones de conexión para ABCD.world; tratará abcd.world como una conexión completamente diferente. ¿Por qué no me sorprende que un producto de Oracle trate como sensible a mayúsculas y minúsculas el contenido de un formato de archivo desarrollado por Oracle que no distingue entre mayúsculas y minúsculas?

Allan Stewart
fuente
@allen: ¿sabes cómo obligarlo a borrar esta lista? Si es así, responda a stackoverflow.com/q/6412559/168646
David Oneill
1

En Sql Developer, navegue a Herramientas-> preferencias-> Datababae-> avanzado-> Establecer directorio Tnsname en el directorio que contiene tnsnames.ora

B Chowdhary
fuente
0

Ninguno de los cambios anteriores hizo ninguna diferencia en mi caso. Podría ejecutar TNS_PING en la ventana de comandos, pero SQL Developer no pudo averiguar dónde estaba tnsnames.ora.

El problema en mi caso (Windows 7 - 64 bit - Enterprise) fue que el instalador de Oracle señaló el acceso directo del menú Inicio a la versión incorrecta de SQL Developer. Parece haber tres instancias de SQL Developer que acompañan al instalador. Uno está en% ORACLE_HOME% \ client_1 \ sqldeveloper \ y dos están en% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.

El instalador instaló un atajo del menú de inicio que apuntaba a una versión en el directorio bin que simplemente no funcionaba. Me pedía una contraseña cada vez que iniciaba SQL Developer, no recordaba las elecciones que había hecho y mostraba una lista en blanco cuando elegía TNS como mecanismo de conexión. Tampoco tiene el campo Directorio TNS en la configuración avanzada de la base de datos a la que se hace referencia en otras publicaciones.

Lancé el antiguo acceso directo de Inicio e instalé un acceso directo a% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Ese cambio solucionó el problema en mi caso.

Miguel
fuente