Ik ga ervan uit dat je het bestand tnsnames.ora gebruikt om je beschikbare databaseservices op te geven. Als dat zo is, hebben verbindingsfouten meestal twee dingen.
-
De toepassing kan het TNS-item dat u hebt opgegeven in de verbindingsreeks niet vinden.
-
Het TNS-item is gevonden, maar het IP-adres of de host is niet correct in het bestand tnsnames.ora.
Om uit te breiden op nummer 1 (wat volgens mij jouw probleem is). Wanneer u Oracle vertelt om verbinding te maken met iets als:
sqlplus user/example@sqldat.com
De service is gedefinieerd in het bestand tnsnames.ora. Als ik probeer verbinding te maken met een service die niet is gedefinieerd in mijn tnsnames.ora, krijg ik de foutmelding die je krijgt:
[voorbeeld@sqldat.com ~]$ sqlplus sodonnel/voorbeeld@sqldat.com
SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 31 21:42:15 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
U moet dus een paar dingen controleren:
- Is er een tnsnames.ora-bestand - ik denk van wel omdat je console verbinding kan maken
- Is er een vermelding in het bestand voor de service - ik denk ook ja als de console verbinding maakt
- Kan de toepassing de tnsnames.ora vinden?
Uw probleem is misschien wel nummer 3 - werkt de applicatie als een andere gebruiker dan wanneer u de console uitvoert?
Oracle zoekt naar het bestand tnsnames.ora in de map die is gedefinieerd in de omgevingsvariabele TNS_ADMIN - Als u als verschillende gebruikers werkt, is de omgevingsvariabele TNS_ADMIN misschien niet ingesteld en kan het het bestand daarom niet vinden?