Rumah > Artikel > pangkalan data > penyahpepijatan prosedur tersimpan oracle
Prosedur tersimpan Oracle ialah program boleh laku yang ditulis dan disimpan dalam pangkalan data, yang boleh menerima parameter input dan mengembalikan hasil. Dalam pemprosesan perniagaan yang kompleks, prosedur tersimpan biasanya digunakan untuk mengawal proses perniagaan, mengoptimumkan prestasi, mengurangkan kos penyelenggaraan dan meningkatkan keselamatan data.
Apabila menulis prosedur tersimpan, anda pasti akan menghadapi beberapa ralat dan pengecualian, seperti ketidakpadanan jenis data, ralat pernyataan SQL, rujukan penuding nol, dsb. Pada masa ini, anda perlu menggunakan alat penyahpepijatan yang disediakan oleh Oracle untuk mendiagnosis dan menyelesaikan masalah ini.
Artikel ini akan memperkenalkan kaedah penyahpepijatan prosedur tersimpan dalam Oracle untuk membantu pembaca membangun dan mengekalkan prosedur tersimpan dengan lebih cekap.
1. Persediaan nyahpepijat
Sebelum menyahpepijat prosedur tersimpan, persediaan berikut perlu dilakukan:
Pertama, anda perlu mencipta prosedur tersimpan dalam pangkalan data Oracle. Anda boleh menggunakan alatan seperti SQL Developer untuk mencipta modul kod baharu dalam pangkalan data dan menulis kod untuk prosedur tersimpan.
Sebagai contoh, berikut ialah contoh prosedur tersimpan mudah:
BUAT ATAU GANTIKAN PROSEDUR my_proc (p_num1 DALAM NOMBOR, p_num2 DALAM NOMBOR, p_result OUT NOMBOR)
SEBAGAI
MULAKAN
p_result := p_num1 + p_num2;
END;
Prosedur tersimpan ini menerima dua parameter input, menambahnya dan menyerahkan hasilnya kepada parameter output p_result.
Untuk nyahpepijat prosedur tersimpan, anda perlu menetapkan maklumat nyahpepijat untuk Oracle PL/SQL. Ia boleh ditetapkan dengan menambah pernyataan berikut pada permulaan kod prosedur yang disimpan:
SET SERVEROUTPUT ON;
UBAH SET SESI PLSQL_DEBUG=TRUE;
Fungsi kedua-dua di atas kenyataan adalah untuk membolehkan maklumat output paparan dan membolehkan keupayaan penyahpepijatan PL/SQL. Mereka boleh membantu kami mendapatkan maklumat yang lebih berguna apabila prosedur tersimpan dilaksanakan, untuk mendiagnosis masalah dengan lebih baik.
Apabila menyahpepijat prosedur tersimpan, anda perlu menyediakan satu set data ujian untuk ujian dan nyahpepijat apabila melaksanakan prosedur tersimpan. Data ujian hendaklah meliputi semua kemungkinan situasi pelaksanaan prosedur yang disimpan, termasuk situasi biasa, situasi tidak normal, dsb.
2. Gunakan alat penyahpepijatan
Selepas melengkapkan persediaan penyahpepijatan di atas, anda boleh mula menggunakan alat penyahpepijatan yang disediakan oleh Oracle untuk menyahpepijat proses yang disimpan.
Pembangun SQL ialah persekitaran pembangunan bersepadu (IDE) yang disediakan oleh Oracle, yang boleh membantu pembangun menulis, nyahpepijat dan mengurus kod berkaitan Pangkalan Data Oracle dan objek. Perkara berikut menerangkan cara untuk menyahpepijat prosedur tersimpan dalam SQL Developer:
(1) Buka prosedur tersimpan dalam SQL Developer
Mula-mula, anda perlu membuka prosedur tersimpan dalam SQL Developer. Cari pakej atau modul di mana prosedur tersimpan terletak dalam Penjelajah Objek di sebelah kiri dan klik dua kali untuk membukanya.
(2) Tetapkan titik putus
Dalam kod prosedur yang disimpan, gunakan butang kiri tetikus untuk mengklik nombor baris di mana anda ingin menetapkan titik putus, dan penunjuk akan muncul. Anda boleh mengklik penunjuk ini untuk menetapkan atau membatalkan titik putus.
(3) Jalankan penyahpepijatan
Selepas menetapkan titik putus, klik ikon penyahpepijatan (pepijat kecil) di penjuru kiri sebelah atas untuk memasuki mod penyahpepijatan. Dalam mod nyahpepijat, anda boleh melangkah melalui kod, melihat nilai pembolehubah dan banyak lagi. Semasa proses nyahpepijat, maklumat proses pelaksanaan akan dipaparkan dalam tetingkap penyahpepijatan di sebelah kanan.
(4) Lihat maklumat output
Apabila melaksanakan prosedur tersimpan, hidupkan maklumat output melalui pernyataan SET SERVEROUTPUT ON. Dalam tetingkap nyahpepijat, anda boleh melihat output prosedur yang disimpan.
Selain Pembangun SQL, Oracle juga menyediakan penyahpepijat PL/SQL yang berdiri sendiri yang boleh dijalankan terus dalam contoh pangkalan data . Anda boleh menggunakan penyahpepijat PL/SQL dengan mengikuti langkah di bawah:
(1) Mulakan penyahpepijat
Dalam SQL Plus atau antara muka SQL yang lain, jalankan arahan berikut untuk memulakan penyahpepijat PL/SQL :
LAKSANAKAN DBMS_DEBUG_JDWP.CONNECT_TCP('localhost',4000);
Selepas pelaksanaan, penyahpepijat akan dimulakan dan menunggu sambungan dengan klien.
(2) Mulakan klien penyahpepijatan
Dalam persekitaran pembangunan Java, cipta aplikasi Java dan gunakan JDI (Antaramuka Nyahpepijat Java) untuk menyambung kepada penyahpepijat. Anda perlu menggunakan fungsi "JPDA (Java Platform Debugger Architecture)" pada mesin maya Java.
Sebagai contoh, dalam Eclipse, anda boleh mencipta konfigurasi Java Debug dan menetapkan parameter Hos dan Port untuk menyambungkan penyahpepijat:
(3) Proses nyahpepijat
Dalam menyahpepijat klien Selepas sambungan berjaya, anda boleh mula menyahpepijat prosedur tersimpan. Semasa nyahpepijat, anda boleh melangkah melalui kod, melihat nilai pembolehubah dan banyak lagi.
3. Kemahiran penyahpepijatan biasa
Apabila menggunakan SQL Developer atau penyahpepijat PL/SQL untuk menyahpepijat prosedur tersimpan, petua berikut boleh membantu pembangun mendiagnosis masalah dengan lebih cekap:
Semasa proses penyahpepijatan, anda boleh menggunakan penyahpepijatan satu langkah untuk melaksanakan baris demi baris kod dan melihat kesan pelaksanaan setiap baris kod. Klik "Step Over" pada bar alat untuk melaksanakan baris semasa dan melompat ke baris seterusnya.
Semasa proses penyahpepijatan, anda boleh melihat nilai pembolehubah untuk membantu kami memahami proses pelaksanaan kod dengan lebih mendalam. Dalam SQL Developer, anda boleh melihat nilai semua pembolehubah semasa dalam tetingkap "Pembolehubah" dalam penyahpepijat PL/SQL, anda boleh menggunakan arahan "Paparan" untuk melihat nilai pembolehubah.
Semasa pelaksanaan prosedur tersimpan, pengecualian mungkin berlaku. Menggunakan alat penyahpepijatan boleh membantu kami mencari masalah dan menanganinya dengan cepat. Secara umumnya, blok kod cuba-tangkap boleh digunakan untuk menangkap pengecualian dan merekodkan maklumat pengecualian untuk memudahkan penyahpepijatan dan pemprosesan kami.
Semasa proses penyahpepijatan, mungkin terdapat beberapa baris kod atau titik putus yang tidak boleh dinyahpepijat (seperti blok kod pengendalian pengecualian). Untuk kod ini, anda boleh menggunakan arahan "Langkau Semua Titik Putus" atau "Langkau ke Titik Putus Seterusnya" untuk melangkau.
Ringkasnya, menggunakan alat penyahpepijatan yang disediakan oleh Oracle boleh membantu kami mendiagnosis masalah dengan lebih baik dalam prosedur tersimpan dan meningkatkan kecekapan pembangunan. Apabila menyahpepijat prosedur tersimpan, adalah disyorkan untuk menyediakan penyahpepijatan terlebih dahulu, menguasai kemahiran penyahpepijatan biasa, dan memberi perhatian kepada butiran, untuk meningkatkan kecekapan pembangunan dengan berkesan.
Atas ialah kandungan terperinci penyahpepijatan prosedur tersimpan oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!