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

ORA-12154 kunne ikke løse den angivne forbindelses-id

Jeg vil antage, at du bruger filen tnsnames.ora til at specificere dine tilgængelige databasetjenester. Hvis det er tilfældet, kommer forbindelsesfejl normalt til to ting.

  1. Applikationen kan ikke finde den TNS-post, du har angivet i forbindelsesstrengen.

  2. TNS-posten blev fundet, men IP-adressen eller værten er ikke korrekt i filen tnsnames.ora.

For at uddybe nummer 1 (som jeg tror er dit problem). Når du beder Oracle om at oprette forbindelse ved hjælp af noget som:

sqlplus user/[email protected]

Tjenesten er defineret i filen tnsnames.ora. Hvis jeg forsøger at oprette forbindelse til en tjeneste, der ikke er defineret i min tnsnames.ora, får jeg den fejl, du får:

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

Så du skal tjekke et par ting:

  1. Er der en tnsnames.ora fil - jeg tror ja, fordi din konsol kan oprette forbindelse
  2. Er der en post i filen for tjenesten - jeg tror også ja, da konsollen opretter forbindelse
  3. Kan applikationen finde tnsnames.ora?

Dit problem kan meget vel være nummer 3 - kører applikationen som en anden bruger, end når du kører konsollen?

Oracle leder efter filen tnsnames.ora i den mappe, der er defineret i TNS_ADMIN-miljøvariablen - Hvis du kører som forskellige brugere, er TNS_ADMIN-miljøvariablen måske ikke indstillet, og den kan derfor ikke finde filen?



  1. Nulstil PostgreSQL primærnøgle til 1

  2. Sådan fungerer MATCH()-funktionen i MySQL

  3. SQL Server blokerede adgang til proceduren 'sys.sp_OACreate' for komponenten 'Ole Automation Procedures'

  4. MODIFY COLUMN i oracle - Hvordan kontrollerer man, om en kolonne er nullbar, før den indstilles til nullbar?