sql >> Database >  >> RDS >> Oracle

ORA-12154 kan de opgegeven verbindings-ID niet oplossen

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.

  1. De toepassing kan het TNS-item dat u hebt opgegeven in de verbindingsreeks niet vinden.

  2. 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/[email protected]

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:

[[email protected] ~]$ sqlplus sodonnel/[email protected]

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:

  1. Is er een tnsnames.ora-bestand - ik denk van wel omdat je console verbinding kan maken
  2. Is er een vermelding in het bestand voor de service - ik denk ook ja als de console verbinding maakt
  3. 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?



  1. jQuery UI Sorteerbaar en schrijf vervolgens de volgorde in een database

  2. Combineer twee tabellen die geen gemeenschappelijke velden hebben

  3. Een query schrijven met meerdere gedragingen

  4. Hoe groot kan een MySQL-database worden voordat de prestaties achteruit gaan?