Loading

Erreur « ORA-12154 » lors de la connexion à Oracle sans utiliser TNSNames.ora

Date de publication: Nov 29, 2023
Description
Lors de l'utilisation d'une connexion Oracle qui a été créée sur un ordinateur qui utilise LDAP, TNSNAMES ou EZCONNECT, ou dans le cas où les trois paramètres de connexion (Serveur, Service et Port) ont été configurés lors de la connexion initiale, la connexion ne fonctionnera plus et l'erreur suivante peut se produire :

« Oracle database error 12154: ORA-12154: TNS:could not resolve the connect identifier specified » (Erreur au niveau de la base de données Oracle 12154 : ORA-12154 : TNS : impossible de résoudre l'identificateur de connexion spécifié)

Lorsque vous tentez de vous connecter à la même base de données Oracle à l'aide d'un nom de service depuis le fichier TNSNames.ora dans le paramètre Serveur et que vous laissez les deux autres paramètres vides, la connexion est correctement établie.

Ce comportement peut se produire dans les cas suivants :
  • Partage de classeurs entre des ordinateurs exécutant Tableau Desktop, dont l'un utilise le(s) fichier(s) de configuration ci-dessus, et l'autre non.
  • Publication d'une connexion en direct sur Oracle depuis un ordinateur exécutant Tableau Desktop et utilisant l'un des fichiers de configuration ci-dessus sur une instance de Tableau Server qui ne l'utilise pas. (Si la connexion est publiée en tant qu'extrait, ce dernier fonctionnera, mais ne sera pas actualisé.)

Cause

Le fichier sqlnet.ora n'autorise pas le pilote Oracle à rechercher la base de données en utilisant les trois paramètres de connexion.

Si TNSNAMES.ora ou LDAP.ora est utilisé, les connexions Oracle et leurs paramètres peuvent être définis en-dehors du connecteur Tableau. La partie « net_service_name » sera utilisée comme champ du serveur, qui, s'il est entré en même temps que les informations d'identification, récupère le nom du service et le numéro de port depuis le fichier TNSNAMES/LDAP. Les ordinateurs qui n'utilisent pas TNSNAMES ou LDAP nécessitent que le nom du service et le numéro de port soient saisis pour que la connexion fonctionne. Ils nécessitent également l'utilisation d'un nom de domaine qualifié complet pour le serveur au lieu d'un nom personnalisé (par exemple : « oracle.test.tsi.lan » serait le nom de domaine qualifié complet, alors que « Oracle_01 » pourrait être utilisé comme paramètre net_service_name)
Résolution

Option 1 :

Faites appel à votre administrateur de base de données Oracle pour autoriser le type de connexion HOSTNAME pour le client Oracle sur l'ordinateur exécutant Tableau Desktop ou Tableau Server.

Option 2 :

L'astuce suivante peut autoriser le type de connexion HOSTNAME :

  1. Sur l'ordinateur exécutant Tableau Desktop ou Tableau Server, trouvez le fichier sqlnet.ora. Le dossier contenant le fichier devrait être spécifié dans la variable TNS_ADMIN et devrait également contenir le fichier TNSNames.ora. Pour plus d'informations, consultez « Set the TNS_Admin environment variable » dans Setting an Oracle Connection to Use TNSNames.ora et Sqlnet.ora dans les FAQ d'Oracle.
    Remarque : si ce dossier ne contient pas de fichier sqlnet.ora, créez un fichier sqlnet.ora.
  2. Dans le fichier sqlnet.ora, ajoutez la ligne NAMES.DIRECTORY_PATH pour indiquer ce qui suit ou ajoutez la ligne suivante au fichier sqlnet.ora : 
    NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)
Remarque : si ce problème se produit dans un environnement distribué Tableau Server, procédez comme indiqué ci-dessus sur tous les ordinateurs de l'installation Tableau Server. Incluez le nom du service et le numéro de port, utilisez le nom de domaine qualifié complet dans le champ de texte « Serveur » de la boîte de dialogue de connexion.
Ressources supplémentaires
Oracle


Numéro d’article de la base de connaissances

001474032

 
Chargement
Salesforce Help | Article