Sebab ralat 12505 ialah "nama_perkhidmatan" dan sid tidak konsisten. Penyelesaian: 1. Gunakan "pilih INSTANCE_NAME dari v$instance" untuk mendapatkan sid semasa dalam pangkalan data 2. Isikan sid yang diperoleh ke dalam rentetan sambungan program pangkalan data;
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.
Sangat jelas bahawa gesaan 12505 muncul Pustaka contoh yang sepadan dengan sid tidak dapat ditemui, iaitu, "nama_perkhidmatan" Oracle adalah tidak konsisten. dengan sid.
Langkah penyelesaian
1. Laksanakan pernyataan ini:
select INSTANCE_NAME from v$instance;
Dapatkan bahagian pustaka instance
2 Kemudian gunakan sid untuk log masuk ke sistem
ORA-12505:
Tiada masalah melog masuk ke pangkalan data menggunakan PL/SQL DEVELOPER dan SQLPLUS sebelum ini, bagaimanapun, apabila aplikasi disambungkan ke Oracle melalui JDBC, ia tidak dapat disambungkan dengan jayanya dan ralat ORA-12505 tidak berlaku pada masa ini ketahui SID yang diberikan dalam deskriptor sambung...
Selepas mencari, didapati bahawa nama_servis dan nama_sid Oracle tidak konsisten, dan PL/SQL DEVELOPER dan SQLPLUS menggunakan nama_perkhidmatan untuk menyambung, dan aplikasi bersambung mengikut sid_name, jadi PL/SQL DEVELOPER dan SQLPLUS boleh disambungkan dan digunakan Program tidak boleh menyambung.
Penerangan masalah:
Hari ini apabila menggunakan jdbc untuk menyambung ke pangkalan data oracle 10.2.0.1.0, ralat berikut berlaku:
Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093120)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
Tetapi pangkalan data boleh disambungkan secara normal melalui plsql secara terus , atau anda boleh menyambung ke pangkalan data melalui sqlplus
Selepas nyahpepijat dan mencari maklumat yang berkaitan, punca masalah ditemui seperti berikut:
Apabila jdbc menyambung ke pangkalan data, anda perlu menggunakan nama_sid pangkalan data dan bukannya nama_servis pangkalan data
Apabila menggunakan plsql untuk menyambung ke pangkalan data, anda hanya memerlukan nama_perkhidmatan pangkalan data, jadi ubah suai nama_perkhidmatan dalam rentetan sambungan kepada sid_name
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat 12505 Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!