Saya akan menganggap Anda menggunakan file tnsnames.ora untuk menentukan layanan database yang tersedia. Jika demikian, kesalahan koneksi biasanya disebabkan oleh dua hal.
-
Aplikasi tidak dapat menemukan entri TNS yang Anda tentukan dalam string koneksi.
-
Entri TNS ditemukan, tetapi IP atau host di file tnsnames.ora tidak benar.
Untuk memperluas nomor 1 (yang menurut saya adalah masalah Anda). Saat Anda memberi tahu Oracle untuk terhubung menggunakan sesuatu seperti:
sqlplus user/[email protected]
Layanan didefinisikan dalam file tnsnames.ora. Jika saya mencoba untuk terhubung dengan layanan yang tidak didefinisikan di tnsnames.ora saya, saya mendapatkan kesalahan yang Anda dapatkan:
[[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
Jadi, Anda perlu memeriksa beberapa hal:
- Apakah ada file tnsnames.ora - saya rasa ya karena konsol Anda dapat terhubung
- Apakah ada entri dalam file untuk layanan - saya pikir juga ya saat konsol terhubung
- Dapatkah aplikasi menemukan tnsnames.ora?
Masalah Anda mungkin nomor 3 - apakah aplikasi berjalan sebagai pengguna yang berbeda dari saat Anda menjalankan konsol?
Oracle mencari file tnsnames.ora di direktori yang ditentukan dalam variabel lingkungan TNS_ADMIN - Jika Anda menjalankan sebagai pengguna yang berbeda, mungkin variabel lingkungan TNS_ADMIN tidak disetel, dan karena itu tidak dapat menemukan file?