Pregunta

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

He instalado los controladores .Net de Oracle y coloqué el archivo tnsnames.ora 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 los nombres TNS como opciones.

¿Hay algo que me falta?

¿Fue útil?

Solución

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 ventanas)
  5. $ ORACLE_HOME / network / admin / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Para ver qué desarrollador de SQL está usando, ejecute el comando show tns en 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 de inicio.

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

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

    Desde Linux: echo $ TNS_ADMIN

  3. Reiniciar SQL Developer

  4. Ahora en SQL Developer, haga clic con el botón 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 deben mostrarse aquí.

Otros consejos

Abrir el desarrollador de SQL. Ir a Herramientas - > Preferencias - > Bases de datos - > Avanzado Luego establezca 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 un problema instalarlo.

Siempre puede encontrar la ubicación del archivo tnsnames.ora que se está utilizando al ejecutar 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 está en la entrada que hizo en tnsnames.ora, no en 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 de tnsnames se está utilizando en los sistemas con múltiples hogares de Oracle.

En SQLDeveloper busque Herramientas - > Preferencias , como se muestra en la imagen a continuación.

ingrese la descripción de la imagen aquí

En las opciones Preferencias expanda Base de datos - > seleccione Avanzado - > en " Directorio de nombres " - > Explore el directorio donde tnsnames.ora presente.
Luego haga clic en Ok .
como se muestra en el siguiente diagrama.

ingrese la descripción de la imagen aquí

  

¡Has terminado!

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

Los pasos mencionados por Jason son muy buenos y deberían funcionar. Sin embargo, hay un pequeño giro con el desarrollador de SQL. Almacena en caché las especificaciones de conexión (host, nombre de 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. El caché persiste incluso después de que se haya terminado y reiniciado SQL Developer. Esta no es una manera tan ilógica de manejar la situación. Incluso si un archivo tnsnames.ora no está disponible temporalmente, SQL Developer aún puede hacer la conexión siempre que las especificaciones originales sigan siendo ciertas. 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. Por lo tanto, si solía tener un nombre de entrada ABCD.world en el archivo y lo reemplazó con una nueva entrada llamada abcd.world, SQL Developer NO actualizaría sus especificaciones de conexión para ABCD.world; trataría a abcd.world como una opción diferente. conexión en conjunto. ¿Por qué no me sorprende que un producto de Oracle trataría como sensible a las mayúsculas y minúsculas el contenido de un formato de archivo desarrollado por Oracle que es expresamente que no distingue entre mayúsculas y minúsculas?

En Sql Developer, navegue a Herramientas- > preferences- > Datababae- > advanced- > Establezca el directorio Tnsname en el directorio que contiene tnsnames.ora

Ninguno de los cambios anteriores hizo alguna 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 que hay tres instancias de desarrollador de SQL 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 acceso directo del menú de inicio que apuntaba a una versión en el directorio bin que simplemente no funcionaba. Pediría una contraseña cada vez que inicié el Desarrollador SQL, no recordaría las elecciones que había hecho y mostrado una lista en blanco cuando elegí TNS como el 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top