Oracle ORA-12154: TNS: Impossible de résoudre le nom du service Erreur?
Je suis un utilisateur de SQL Server .
Je suis sur un projet qui est de l'utilisation d'oracle (que j'utilise rarement)
J'ai besoin de créer une connexion ODBC, afin que je puisse accéder à certaines données par l'intermédiaire de MS Access
J'ai une application sur mon appareil appelé oraHome90. Il semble permettre une configuration de quelque chose qui s'appelle un auditeur dans une “nette de l'utilitaire de configuration”, je pense qu'un “réseau Local de Services Nom de la Configuration” doit également être fait. Le support informatique m'a donné ces informations pour configurer la connexion ODBC . J'ai essayé toutes les combinaisons que je peux penser. Je peux passer un test qui réussit un test de “login“ pour le serveur oracle base de données. Lorsque j'essaie de créer la connexion ODBC j'obtiens l'erreur suivante: ORA-12154: TNS: impossible de résoudre le nom du service.
En supposant que je veux commencer à partir de zéro et les informations suivantes sont censés permettre de me connecter à la base de données..... Des suggestions ou des commentaires ? Remarque: en fin de compte, le projet aura un site web .Page ASP interroger les données, mais je dois d'abord prouver que je peux voir les données à l'aide de la connexion ODBC via MS Access
Service name: SERVICENAME
HOST = HOST.XYZi.com
User Id: MYUSERID
Password: MYPASSWORD
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Oracle Connection
Dim ocst
Dim oconn
ocst = "Provider=OraOLEDB.Oracle;" & _
"Data Source=DATASOURCE;" & _
"User ID=CHIJXL;" & _
"Password=password;"
set oconn = CreateObject("ADODB.Connection")
source d'informationauteur Joe
Vous devez vous connecter pour publier un commentaire.
de http://ora-12154.ora-code.com
ORA-12154: TNS:impossible de résoudre le connecter identifiant spécifié
Cause: Une connexion à une base de données ou d'autres services, a demandé l'aide d'une connexion identifiant, et le connecter identifiant spécifié n'a pas pu être résolu en un descripteur de connexion à l'aide de l'un de l'appellation configuré. Par exemple, si le type de connecter identifiant utilisé était un filet de service nom, puis le nom du service réseau n'a pas pu être trouvé dans une méthode d'attribution de dépôt ou le dépôt n'a pas pu être localisé ou atteint.
Action:
Si vous utilisez la toponymie locale (TNSNAMES.ORA fichier):
Assurez-vous que "TNSNAMES" est répertorié comme l'une des valeurs de l'NOMS.DIRECTORY_PATH paramètre dans l'Oracle de profil Net (SQLNET.ORA)
Vérifier qu'un TNSNAMES.ORA fichier existe et est dans le répertoire adéquat et accessible.
Vérifiez que le nom du service réseau utilisé comme se connecter identifiant existe dans le TNSNAMES.ORA fichier.
Assurez-vous il n'y a pas d'erreurs de syntaxe n'importe où dans le TNSNAMES.ORA fichier. Recherchez inégalée des parenthèses ou des caractères parasites. Les erreurs dans un TNSNAMES.ORA fichier peut le rendre inutilisable.
Si vous utilisez le répertoire d'appellation:
Vérifiez que "LDAP" est répertorié comme l'une des valeurs de l'NOMS.DIRETORY_PATH paramètre dans l'Oracle de profil Net (SQLNET.ORA).
Vérifiez que le serveur d'annuaire LDAP est en place et qu'il est accessible.
Vérifiez que le nom du service réseau ou nom de base de données utilisé comme se connecter identifiant est configuré dans le répertoire.
Vérifier que le contexte par défaut utilisé est correct en spécifiant un complet net nom de service ou un plein DN LDAP comme le connecter identifiant
Si vous utilisez easy connect de nommage:
Vérifiez que "EZCONNECT" est répertorié comme l'une des valeurs de l'NOMS.DIRETORY_PATH paramètre dans l'Oracle de profil Net (SQLNET.ORA).
Assurez-vous que l'hôte, le port et le nom du service indiquées sont correctes.
Essayer joignant le connecter identificateur entre guillemets. Voir l'Oracle Net Services Guide de l'administrateur ou de l'Oracle spécifique du système d'exploitation pour plus d'informations sur le nommage.
Aller sur l'hypothèse que vous utilisez TNSNAMES de nommage, voici un couple de choses à faire:
C'est en supposant que vous êtes à l'aide de l'Oracle standard port de 1521. Notez que servicename_alias peut être n'importe quel nom que vous souhaitez utiliser sur le système local. Vous pouvez également trouver que vous avez besoin de spécifier (SID = SERVICENAME) au lieu de (SERVICENAME=SERVICENAME).
En référence au n ° 7 dans ce MSDN POST , l'ajout d'une entrée de registre ont travaillé pour moi. J'ai eu Vs2010, et oracle 11.0 installé.
J'ai eu du mal à résoudre ce problème pendant des heures jusqu'à ce que j'ai trouvé une variable d'Environnement appelée TNS_ADMIN mis dans Mon Ordinateur => Propriétés => Avancé => Variables d'Environnement => chercher dans les variables du Système pour une entrée appelée TNS_ADMIN.
TNS_ADMIN est ajouté afin de modifier le chemin d'accès par défaut pour Tnsnames.ora entrée.
Ceci est utile lorsqu'il est utilisé dans un environnement de réseau où un générique tnsnames.ora entrée peut être configurée pour tous les ordinateurs du réseau.
Pour regarder le chemin d'accès par défaut de tnsnames.ora ajouter le chemin d'accès par défaut dans TNS_ADMIN.
@Warren et @DCookie ont couvert la solution, une chose à souligner est l'utilisation de
tnsping
. Vous pouvez l'utiliser pour prouver votre TNSNames est correct avant de vous connecter.Une fois que vous avez mis en place tnsnames correctement, vous pouvez utiliser ODBC ou essayer TOra qui permettra d'utiliser votre connexion oracle native. TOra ou quelque chose de similaire (TOAD, SQL*Plus, etc) seront d'une valeur inestimable dans le débogage et l'amélioration de votre SQL.
Dernier mais non le moins, quand on finit par se connecter avec ASP.net n'oubliez pas que vous pouvez utiliser l'Oracle bibliothèques de connexions de données. Voir Oracle.com pour une multitude de ressources.
Si il y a un espace dans le début de la tns nom de définir dans le fichier
tnsnames.ora
puis certains des connecteurs comme odbc peut donner cette erreur. Retirer caractère d'espace dans le début.J'ai connu ce problème aussi. J'ai découvert le problème, c'est parce que Oracle DB n'aime pas l'espace dans C:program files (x86)\Crapaud...... j'ai donc créé un nouveau répertoire nommé C:App\Toad puis réinstallé en elle pour se connecter Toad pour Oracle. Il a travaillé.
Il n'a rien à voir avec un espace incorporé dans la structure de dossiers.
J'ai eu le même problème. Mais quand je créé une variable d'environnement (défini à la fois au système et au niveau de l'utilisateur) appelé TNS_HOME et fait pour pointer vers le dossier où TNSNAMES.ORA existé, le problème a été résolu. Voila!
venki
J'ai eu le même problème et le même message d'erreur apparaissait. mon TNSNAMES:ORA fichier a été aussi bon pour aller, mais il y a apparemment un problème de pare-feu qui bloque l'accès. DONC, un bon conseil serait de faire en sorte que le pare-feu ne bloque pas l'accès à la source de données.
Dans mon cas, c'est parce que j'étais sur un x64 PC et toujours à l'aide de l'ancien Oracle 9i avec le 32bit pilotes!
Je suis à l'aide de SQL Reporting Services avec une Base de données Oracle. Le problème est que les crochets dans le chemin d'accès à Visual Studio (BIDS). Oracle n'aime pas les applications qui démarrent dans un chemin avec des crochets:
SGBDR 10g XE problème avec la parenthèse en chemin
J'ai donc fait un fichier BAT pour ouvrir Visual Studio avec Progra~2 comme le nom de chemin court pour "Program Files (x86)".
Voici le contenu du fichier BAT:
J'ai le nom de ce fichier BAT StartBIDS.Chauve-souris et de le mettre dans le répertoire:
Puis-je faire une coupe courte à la chauve-souris le fichier sur mon Bureau et de mon Menu Démarrer et changer l'icône Raccourcis. Cela me permet de m'ouvrir CRAPAUD, Visual Studio, OFFRES et etc les applications que j'utilise pour travailler avec Oracle.
Mise à jour:
Sinon faire une Jonction:
Puis supprimer les crochets dans le raccourci:
Heures de problèmes RÉSOLUS. J'avais installé la version Bêta de Entity Framework pour Oracle et dans visual studio 2010 MVC 3 projet j'ai été référencement sous l'onglet .NET de l'Oracle.DataAccess ... C'gardé de me donner la "Oracle ORA-12154: TNS: impossible de..." erreur. J'ai finalement juste visionné à la précédente installation d'Oracle sous c:\Oracle\product.... l'aide de l'ancien 10.2.0.100 version de la dll. Enfin, il fonctionne maintenant. Espérons que cela aide quelqu'un d'autre.
Je viens de passer une heure sur ce, je suis nouveau sur Oracle j'ai donc été complètement confus..
la situation:
viens d'installer visual studio 2012 Oracle developer tools. Lorsque j'ai fait ce que j'ai perdu les articles de ma liste déroulante qui contenait mon TNS entrées en CRAPAUD. J'ai été faire cette erreur à partir de Visual studio ET de CRAPAUD!! WTH! j'ai donc ajouté à la Variable d'environnement TNS_ADMIN sous "TOUS les UTILISATEURS" avec le chemin d'accès à mon .ora fichier (que j'ai maintenant a bien fonctionné parce qu'il a travaillé jusqu'à ce que je l'ai cassé). Crapaud ramassé ce changement. Encore Visual Studio ne voulait pas me donner de l'amour... toujours la même erreur. ENSUITE, j'ai ajouté la Variable d'environnement À MON VARIABLES UTILISATEUR.. ALTO!!
ASSURER LES VARIABLES D'ENVIRONNEMENT SONT DÉFINIES POUR LE SYSTÈME ET L'UTILISATEUR
Ne redémarre le SID de services. Par exemple, vous nom de SID = orcl), puis tous les services liés à orcl) doit être redémarrez ensuite votre problème sera résolu
Nous avons résolu nos problèmes en re-installation de la Base de données Oracle Client. En quelque sorte, l'installation n'a pas réussi sur 1 des postes de travail (même si il n'y avait pas de connexion), cependant lorsque l'on compare la taille de l'/fichiers/dossiers de l'Oracle directory pour un client de travail poste de travail, il y avait une quantité importante de fichiers qui ont été perdus. Une fois que nous avons effectué une installation propre, tout a fonctionné parfaitement.
Dans mon cas, l'erreur parce que j'ai 2 Oracle clients, C'est la solution:
Oracle ORA-12154 erreur sur IIS local, mais pas avec le Serveur de Développement Visual Studio
Cela a été mentionné dans un commentaire à une autre réponse, mais j'ai voulu le déplacer vers une réponse réelle puisque c'est aussi le problème dans mon cas, et j'aurais upvoted si elle avait été une réponse.
Je suis sur Linux et le tnsnames.ora fichier n'était pas lisible par tout le monde. Après le rendant lisible connexion via tns localement travaillé.
Nous avons également eu le même problème. Ce que nous avons découvert que nous avions prévu plusieurs alias pour notre chaîne de connexion dans tnsnames.ora, quelque chose comme:
svc01, svc02=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(port=50))(CONNECT_DATA=(SERVER=DEDICATED)(service_name=yyyysvc.world)))
donc lors de la création d'une connexion à l'aide de ODBC, lorsque nous avons choisi la valeur de nom du service TNS, l'auto remplir montrait 'svc01,' (notez la virgule supplémentaire). Dès que nous avons enlevé la virgule, il a commencé à travailler pour nous.
Si vous avez un 32bit DSN et 64 bits DSN avec les mêmes noms, Windows va automatiquement choisir le 64 bits, et Si votre demande est 32bit il affiche ce message d'erreur. Il suffit de regarder pour cela.
J'ai eu ce problème à cause d'une faute de frappe dans le nom du fichier tsnames.ora au lieu de tnsnames.ora
J'ai résolu ce problème en utilisant cette procédure.
Tout d'abord, cette erreur s'est produite , si vous n'avez pas à installer le même répertoire ou le lecteur.
Mais la réponse est ici.
Trouver les OS de la variable et de changer de nom comme un "TNS_ADMIN"
Et modifiez la valeur comme un "tnsnames du répertoire d'adresses"
Redémarrer le système.
J'ai résolu ce problème en supprimant les sqlnet.ora de la C:\oracle\ora92\network\ADMIN chemin