BASE DE CONOCIMIENTO

Error "ORA-12154" al conectarse a Oracle cuando no se usa TNSNames.ora


Publicado: 01 Aug 2014
Fecha de la última modificación: 29 Nov 2023

Problema

Si utiliza una conexión de Oracle, que se creó en un equipo que utiliza LDAP, TNSNAMES o EZCONNECT, o donde los tres parámetros de conexión (Servidor, Servicio y Puerto) se configuraron durante la conexión inicial, la conexión no funcionará y es posible que se produzca el siguiente error:

"Oracle database error 12154: ORA-12154: TNS:could not resolve the connect identifier specified (Error en la base de datos de Oracle 12154: ORA-12154: TNS: No se pudo resolver el identificador de conexión especificado)

Al intentar conectarse a la misma base de datos de Oracle con el nombre del servicio del archivo TNSNames.ora en el parámetro de servidor y dejar los otros dos parámetros en blanco, la conexión se establece correctamente.

Este comportamiento puede darse cuando:
  • Se comparten libros de trabajo entre sistemas que ejecutan Tableau Desktop, cuando uno tiene los archivos de configuración anteriores y el otro no.
  • Se publica una conexión en tiempo real a Oracle desde un sistema que ejecuta Tableau Desktop que usa los archivos de configuración anteriores a una instancia de Tableau Server que no los usa. (Si la conexión se publica como una extracción, funcionará pero no se actualizará).

Entorno

  • Tableau Server
  • Tableau Desktop
  • Oracle

Solución

Opción 1:

Trabaje con su administrador de bases de datos de Oracle para permitir el tipo de conexión NOMBRE DE HOST para el cliente de Oracle en el equipo donde se ejecute Tableau Desktop o Tableau Server.

Opción 2:

Es posible que la solución alternativa pueda permitir el tipo de conexión NOMBRE DE HOST:

  1. En el equipo donde se ejecute Tableau Desktop o Tableau Server, busque el archivo sqlnet.ora. La carpeta que contenga el archivo debe especificarse en la variable TNS_ADMIN y debe también contener el archivo TNSNames.ora. Para obtener más información, consulte "Configurar la variable de entorno TNS_Admin" en Configurar una conexión de Oracle para usar TNSNames.ora y Sqlnet.ora en las preguntas más frecuentes de Oracle.
    Nota: Si esta carpeta no contiene un archivo sqlnet.ora, cree un archivo sqlnet.ora.
  2. En el archivo sqlnet.ora, cambie la línea NAMES.DIRECTORY_PATH por lo siguiente, o bien agregue la línea siguiente al archivo sqlnet.ora: 
    NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)
Nota: Si este problema se produce en un entorno distribuido de Tableau Server, realice los pasos anteriores en todos los equipos de la instalación de Tableau Server. Incluya el nombre del servicio y el número de puerto, use el nombre de dominio completamente calificado (FQDN) en el campo de texto ''Servidor'' del cuadro de diálogo de conexión.

Causa

El archivo sqlnet.ora ahora permite que el controlador de Oracle busque la base de datos con los tres parámetros de conexión.

Cuando se usa TNSNAMES.ora o LDAP.ora, permiten las conexiones de Oracle y definir sus parámetros fuera del conector de Tableau. La porción "net_service_name" se usará como el campo de servidor que, al escribirse junto a las credenciales, obtiene el nombre del servicio y el número de puerto del archivo TNSNAMES/LDAP. Los equipos que no usan TNSNAMES/LDAP necesitan que se escriba el nombre del servicio y el número de puerto para que la conexión funcione. También necesitan que se use un FQDN para el servidor, en lugar de un nombre personalizado (p. ej.: "oracle.test.tsi.lan" sería el FQDN, mientras que "Oracle_01" se puede utilizar como un net_service_name).

Información adicional

Oracle


¿Fue de ayuda este artículo para resolver el problema?