Jag kommer att anta att du använder filen tnsnames.ora för att specificera dina tillgängliga databastjänster. Om så är fallet beror anslutningsfel vanligtvis på två saker.
-
Applikationen kan inte hitta TNS-posten som du angav i anslutningssträngen.
-
TNS-posten hittades, men IP:n eller värden är inte korrekt i filen tnsnames.ora.
För att utöka nummer 1 (som jag tror är ditt problem). När du säger åt Oracle att ansluta med något som:
sqlplus user/[email protected]
Tjänsten definieras i filen tnsnames.ora. Om jag försöker ansluta till en tjänst som inte är definierad i min tnsnames.ora får jag felmeddelandet som 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 måste kontrollera några saker:
- Finns det en tnsnames.ora-fil - jag tror ja eftersom din konsol kan ansluta
- Finns det en post i filen för tjänsten - jag tror också ja när konsolen ansluter
- Kan programmet hitta tnsnames.ora?
Ditt problem kan mycket väl vara nummer 3 - körs applikationen som en annan användare än när du kör konsolen?
Oracle letar efter filen tnsnames.ora i katalogen som definieras i miljövariabeln TNS_ADMIN - Om du kör som olika användare, kanske miljövariabeln TNS_ADMIN inte är inställd och därför inte kan hitta filen?