Предполагам, че използвате файла tnsnames.ora, за да посочите наличните си услуги за база данни. Ако е така, грешките при свързването обикновено се свеждат до две неща.
-
Приложението не може да намери TNS записа, който сте посочили в низа за връзка.
-
TNS записът бе намерен, но IP адресът или хостът не са правилни във файла tnsnames.ora.
Да разширя номер 1 (което според мен е твой проблем). Когато кажете на Oracle да се свърже с нещо като:
sqlplus user/[email protected]
Услугата е дефинирана във файла tnsnames.ora. Ако се опитам да се свържа с услуга, която не е дефинирана в моя tnsnames.ora, получавам грешката, която получавате:
[[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
Така че трябва да проверите няколко неща:
- Има ли файл tnsnames.ora – мисля, че да, защото конзолата ви може да се свърже
- Има ли запис във файла за услугата - мисля също, че да, когато конзолата се свързва
- Може ли приложението да намери tnsnames.ora?
Вашият проблем може да е номер 3 - приложението работи ли като различен потребител, отколкото когато стартирате конзолата?
Oracle търси файла tnsnames.ora в директорията, дефинирана в променливата на средата TNS_ADMIN - Ако работите като различни потребители, тогава може би променливата на средата TNS_ADMIN не е зададена и следователно не може да намери файла?