web-dev-qa-db-fra.com

ORA-12154: TNS: impossible de résoudre l'identificateur de connexion spécifié (développeur PLSQL)

Je dois utiliser PLSQL Developer pour accéder aux bases de données Oracle. Le message d'erreur suivant s'affiche lorsque j'essaie de me connecter à ma base de données. ORA-12154: TNS:could not resolve the connect identifier specified. Je peux utiliser SQLPLUS à partir de la ligne de commande pour me connecter à la base de données, et tspsping revient avec succès, mais je ne comprends pas pourquoi le développeur PLSQL ne fonctionnera pas - il utilise le bon tnsnames.ora fichier, et la chaîne de connexion est correcte car c’est le même qui tspsping les usages.

Quelqu'un a une idée de ce que je peux faire pour résoudre ce problème? J'ai examiné d'autres discussions sur cette erreur spécifique sans succès.

tnsnames.ora

    ORCL =
      (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(Host = MININT-AIVKVBM)(PORT = 1521)) 
      (CONNECT_DATA = 
        (SERVER = DEDICATED) 
        (SERVICE_NAME = orcl)
      )
    )

sqlnet.ora

     SQLNET.AUTHENTICATION_SERVICES= (NTS)
     NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

ligne de commande sqlpusimage ici

Préférences de connexion de développeur PLSQL: image ici

5
ZakTaccardi

La réponse était simplement de déplacer le dossier PLSQL Developer de "Program Files (x86) dans le dossier" Program Files "- bizarre!

27
ZakTaccardi

Cette erreur est très commune, souvent la première fois que vous essayez d’établir une connexion avec votre base de données. Je suggère ces 6 étapes pour corriger ORA-12154:

  1. Le nom de l'instance de vérification a été entré correctement dans tnsnames.ora. 
  2. Il ne doit y avoir aucun caractère de contrôle à la fin de l'instance ou du nom de la base de données.
  3. Toutes les parenthèses autour de l'entrée TNS doivent être correctement terminées
  4. L’entrée du nom de domaine dans sqlnet.ora ne doit pas être en conflit avec le nom complet de la base de données.
  5. Si le problème persiste, essayez de recréer une entrée TNS dans tnsnames.ora.
  6. Enfin, vous pouvez ajouter de nouvelles entrées à l'aide de l'utilitaire de configuration SQL * Net Easy.

Pour plus d'informations: http://turfybot.free.fr/Oracle/11g/errors/ORA-12154.html

3
tufy

Comme je ne peux pas ajouter de commentaire, je me suis dit que ce serait à poster. La réponse de tufy est correcte, il s'agit de parenthèses (crochets) dans le chemin d'accès à l'application en cours d'exécution.

Il existe un bogue réseau dans lequel la couche réseau est Incapable d'analyser les emplacements de programme contenant des parenthèses dans le chemin De l'exécutable qui tente de se connecter à Oracle.

Classé avec Oracle, le bogue 3807408 fait référence.

La source

1
Dave Salomon

copier coller pl développeur SQL dans les fichiers de programme x86 et les fichiers de programme à la fois. si le client est installé dans une autre partition/lecteur, copiez également pl SQL Developer sur ce lecteur également. et exécutez à partir du dossier de développement pl sql au lieu du raccourci sur le bureau. 

solution ultime! refroidissement

1
khayam

Pour moi, le formatage de l'identifiant de connexion tnsnames.ora était incorrect. L'indentation de la chaîne d'identifiant est requise, comme indiqué dans l'exemple tnsnames.ora du commentaire.

0
Jan Matousek

Il suffit de copier et coller les fichiers tnsnames et sqlnet de la maison Oracle dans le dossier principal de PLSQL Developer. Utilisez la requête ci-dessous pour obtenir la maison Oracle.

sélectionnez substr (file_spec, 1, instr (file_spec, '\', -1, 2) -1) Oracle_HOME à partir de dba_libraries où nom_bibliothèque = 'DBMS_SUMADV_LIB';

0
Alok

J'ai eu le même problème avec un VM exécutant CentOS7 et Oracle 11GR2 accessible depuis Windows 7, la solution était bizarre. Sur ma machine locale, les noms de réseau pointant vers la base de données avaient un espace avant le nom du service, je viens de les supprimer. l'espace et ensuite j'ai pu me connecter.

Un exemple rapide.

Mauvais noms.

[ceci est un espace vide] XE = (DESCRIPTION = (ADRESSE = (PROTOCOL = TCP) (hôte = 127.0.0.1) (PORT = 1521)) (CONNECT_DATA = (SERVEUR = DÉDIÉ) (SERVICE_NAME = XE) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)) (KEY = EXTPROC_FOR_XE)) ) ) (. CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

Les bons noms.

XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (hôte = 127.0.0.1) (PORT = 1521)) (CONNECT_DATA = ( SERVEUR = DÉDIÉ) (SERVICE_NAME = XE) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)) (KEY = EXTPROC_FOR_XE)) ) ) (. CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

0
sandatomo

En plus des solutions ci-dessus, Vérifie également l’emplacement où se trouve le fichier tnsname ou un fichier et le compare au chemin dans la variable d’environnement.

0
venky_ferrari

J'ai eu un problème au travail. Le serveur Oracle a été "corrigé" et l'une des bases de données que j'utilise n'a pas pu être connectée via l'entrée TNSNames mais via une connexion de base. La base de données était opérationnelle et l'administrateur pouvait voir qu'elle était opérationnelle.

De plus, toute application utilisant TNS pour se connecter à la base de données ne fonctionnerait pas non plus.

Le problème constaté était que le nom de la base de données n'était pas correct dans le fichier TNS mais, pour une raison quelconque, cela fonctionne depuis des années. Corriger le nom nous l'a corrigé. J'ai constaté qu'Oracle SQL Developer continuait à utiliser l'ancienne entrée TNS même après l'avoir mise à jour et je n'ai pas envie de la réinstaller pour une seule connexion à la base de données. Il semble que lors de la création de la base de données, un nom plus petit que les autres lui a été attribué et que, par une action de copier/coller dans le fichier TNSNames, les données ont été mélangées. Personne ne sait vraiment comment cela fonctionne car nous enquêtons, mais le correctif Oracle garantissait que le nom devait être correct.

Un exemple de nom était le nom "DBName.Part1.Part2" mais en réalité, le nom de la base de données était "DBName"

0
user2960847
  • Cela ne fonctionnait pas, alors je suis passé au développeur Oracle SQL et cela a fonctionné Sans aucun problème (connexion en moins d'une minute).
  • Ce lien m'a donné une idée me connecter à MS Access alors j'ai créé un utilisateur Dans Oracle SQL Developer et j'ai essayé de me connecter à Toad Et cela a fonctionné.

Ou deuxième solution

vous pouvez essayer de vous connecter en utilisant Direct et non TNS en fournissant l’hôte et le port dans l’écran de connexion de Toad

0
shareef

Je voulais juste ajouter - apparemment, cela peut aussi être causé par l’installation d’Instant Client pour 10, puis en réalisant que vous souhaitez installer l’installation complète et en l’installant à nouveau dans un répertoire parallèle. Je ne sais pas pourquoi cela l'a cassé.

0
TallDave