Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-12154 non è stato in grado di risolvere l'identificatore di connessione specificato

Presumo che tu stia utilizzando il file tnsnames.ora per specificare i servizi di database disponibili. In tal caso, gli errori di connessione di solito si riducono a due cose.

  1. L'applicazione non riesce a trovare la voce TNS specificata nella stringa di connessione.

  2. La voce TNS è stata trovata, ma l'IP o l'host non sono corretti nel file tnsnames.ora.

Per espandere il numero 1 (che penso sia il tuo problema). Quando dici a Oracle di connettersi usando qualcosa come:

sqlplus user/[email protected]

Il servizio è definito nel file tnsnames.ora. Se provo a connettermi con un servizio che non è definito in mio tnsnames.ora, ottengo l'errore che ottieni:

[[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

Quindi devi controllare alcune cose:

  1. C'è un file tnsnames.ora - Penso di sì perché la tua console può connettersi
  2. C'è una voce nel file per il servizio? Penso anche di sì quando la console si connette
  3. L'applicazione può trovare tnsnames.ora?

Il tuo problema potrebbe essere il numero 3:l'applicazione viene eseguita come un utente diverso rispetto a quando esegui la console?

Oracle cerca il file tnsnames.ora nella directory definita nella variabile di ambiente TNS_ADMIN - Se stai eseguendo come utenti diversi, forse la variabile di ambiente TNS_ADMIN non è impostata e quindi non riesce a trovare il file?