Bagaimana untuk menyahpepijat prosedur tersimpan dalam Oracle
Pangkalan data Oracle ialah sistem pengurusan pangkalan data perhubungan yang digunakan secara meluas oleh perusahaan utama Fungsi dan kestabilannya yang berkuasa digemari oleh orang ramai. Dalam proses pembangunan sebenar, pembangun selalunya perlu menulis prosedur tersimpan untuk melaksanakan pelbagai logik perniagaan, dan mungkin menghadapi beberapa masalah apabila menyahpepijat prosedur tersimpan.
Artikel ini akan memperkenalkan cara menyahpepijat prosedur tersimpan dalam pangkalan data Oracle.
1. Gunakan SQL Developer untuk menyahpepijat prosedur tersimpan
SQL Developer ialah alat pembangunan pangkalan data percuma yang disediakan secara rasmi oleh Oracle. Ia menyediakan penyahpepijat yang kuat yang boleh digunakan untuk menyahpepijat Prosedur storan PL/SQL , fungsi, pencetus, dsb. Di bawah ini kami akan mengambil prosedur tersimpan mudah sebagai contoh untuk menunjukkan cara menggunakan Pembangun SQL untuk menyahpepijat prosedur tersimpan.
1. Buat prosedur tersimpan
Pertama, kita perlu mencipta prosedur tersimpan yang mudah:
BUAT ATAU GANTIKAN PROSEDUR my_proc (p_input IN NUMBER, p_output OUT NUMBER) AS
BEGIN
p_output := p_input * 2;
END;
Prosedur tersimpan ini menerima parameter input p_input, dan mendarabkannya dengan 2 dan memberikannya kepada parameter output p_output. Dalam senario sebenar, prosedur tersimpan akan menjadi lebih kompleks, tetapi kaedah penyahpepijatan yang ditunjukkan dalam artikel ini juga boleh digunakan untuk prosedur tersimpan yang kompleks.
2. Tetapkan titik putus
Seterusnya, kita perlu menetapkan titik putus dalam prosedur tersimpan untuk menjeda aliran program dan menyemak nilai pembolehubah semasa pelaksanaan. Menetapkan titik putus dalam Pembangun SQL adalah sangat mudah Anda hanya perlu memilih baris di mana anda ingin menetapkan titik putus dalam kod prosedur tersimpan, dan kemudian klik pada kawasan kosong di sebelah nombor baris. Seperti yang ditunjukkan dalam imej di bawah, saya menetapkan titik putus pada baris 3.
3. Laksanakan prosedur tersimpan
Sekarang, kita boleh melaksanakan prosedur tersimpan dalam SQL Developer dan menjeda aliran program semasa proses berjalan untuk menyemak nilai pembolehubah. Kita boleh menggunakan kod berikut untuk melaksanakan prosedur tersimpan dan lulus nilai parameter:
DECLARE
v_input NUMBER := 10;
v_output NUMBER;
BEGIN
My_proc( v_input, v_output );
END;
Selepas melaksanakan kod ini, SQL Developer akan secara automatik membuka penyahpepijat dan menjeda atur cara pada baris 3, seperti yang ditunjukkan dalam rajah di bawah. Kita dapat melihat bahawa nilai v_input ialah 10, dan semasa pelaksanaan langkah demi langkah, nilai p_output juga diberikan kepada 20.
4. Semak nilai pembolehubah
Semasa program dijeda, kita boleh menyemak nilai setiap pembolehubah. Anda boleh melihat nilai pembolehubah dengan mengklik namanya dalam kod atau dengan menggunakan tetingkap Monitor. Dalam Pembangun SQL, anda boleh melihat nilai berbilang pembolehubah pada masa yang sama dengan memilih menu Nyahpepijat > Menyahpepijat Windows >
Seperti yang ditunjukkan dalam gambar di bawah, saya menambah v_input, v_output dan p_output pada tetingkap monitor, dan anda boleh melihat bahawa nilainya masing-masing ialah 10, 0 dan 0.
Kami kemudiannya boleh membiarkan atur cara meneruskan pelaksanaan sehingga titik putus seterusnya atau tamat program dengan mengklik butang "Teruskan Pelaksanaan" di bahagian atas tetingkap penyahpepijat.
2. Gunakan pakej DBMS_DEBUG untuk nyahpepijat prosedur tersimpan
Jika anda tidak mempunyai SQL Developer sebagai alat, anda juga boleh menggunakan pakej DBMS_DEBUG yang disediakan oleh Oracle untuk menyahpepijat prosedur tersimpan. Di bawah ini kami akan memperkenalkan cara menggunakan pakej DBMS_DEBUG.
Pakej DBMS_DEBUG ialah pakej alat yang disediakan oleh Pangkalan Data Oracle, yang melaluinya anda boleh menetapkan titik putus dalam prosedur tersimpan, menjeda aliran pelaksanaan program dan menyemak nilai pembolehubah program. Menyahpepijat prosedur tersimpan menggunakan pakej DBMS_DEBUG memerlukan langkah berikut:
1. Tetapkan pilihan kompilasi
Pertama, kita perlu menetapkan pilihan kompilasi dalam prosedur tersimpan supaya pakej DBMS_DEBUG boleh digunakan. Tambahkan pernyataan berikut sebelum kod prosedur tersimpan:
UBAH SET SESI PLSQL_DEBUG=TRUE;
2 Mulakan penyahpepijat
Seterusnya, kita perlu mula menyahpepijat masuk peranti prosedur yang disimpan. Tambahkan kod berikut pada prosedur tersimpan:
DBMS_DEBUG_DBMS_DEBUG.CONNECT_SESSION;
Kod ini akan memulakan penyahpepijat dan menunggu klien menyambung.
3 Sambungkan klien
Sekarang, kita perlu menyambung ke pangkalan data dalam klien dan menyambung kepada penyahpepijat yang baru kita mulakan. Dalam SQL Plus, anda boleh menggunakan arahan berikut untuk menyambung:
EXEC DBMS_DEBUG_JDWP.CONNECT_TCP(‘localhost’,4000);
Jika sambungan berjaya, "disambungkan" akan digesa.
4. Tetapkan titik putus
Selepas sambungan pelanggan berjaya, kami boleh menetapkan titik putus dalam prosedur tersimpan. Gunakan kod berikut untuk menetapkan titik putus dalam prosedur tersimpan:
DBMS_DEBUG_JDWP.BREAKPOINT(‘my_proc’,4);
Arahan ini akan menetapkan titik putus pada baris 4 prosedur tersimpan. my_proc ialah nama prosedur yang disimpan.
5. Laksanakan prosedur tersimpan
Sekarang kita boleh melaksanakan prosedur tersimpan dan menjeda atur cara semasa pelaksanaan untuk menyemak nilai pembolehubah.
Laksanakan kod berikut dalam SQL Plus:
DECLARE
v_input NUMBER := 10;
v_output NUMBER;
BEGIN
my_proc(v_input, v_output );
TAMAT;
Jika penyahpepijat disediakan dengan betul, atur cara akan berhenti seketika pada baris 4. Dalam keadaan dijeda, anda boleh menggunakan arahan berikut untuk menyemak nilai pembolehubah:
DBMS_DEBUG_JDWP.PRINT_VARIABLE('v_input');
DBMS_DEBUG_JDWP.PRINT_VARIABLE('v_output');
Kedua-dua Perintah ini boleh memaparkan nilai pembolehubah v_input dan v_output.
6. Teruskan
Selepas menyemak nilai pembolehubah, jika anda masih perlu meneruskan pelaksanaan program, anda boleh menggunakan arahan berikut:
DBMS_DEBUG_JDWP.CONTINUE;
Arahan ini akan membenarkan atur cara meneruskan melaksanakan sehingga titik gangguan seterusnya atau program tamat.
Ringkasan
Dalam pangkalan data Oracle, penyahpepijatan prosedur tersimpan adalah tugas yang agak biasa. Artikel ini memperkenalkan dua kaedah menyahpepijat prosedur tersimpan, menggunakan SQL Developer dan pakej DBMS_DEBUG. Tidak kira kaedah yang digunakan, anda boleh dengan mudah menetapkan titik putus dalam prosedur tersimpan, menjeda pelaksanaan program dan menyemak nilai pembolehubah, membantu pembangun mencari masalah dengan cepat dan membetulkan pepijat.
Atas ialah kandungan terperinci Bagaimana untuk menyahpepijat prosedur tersimpan dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini menerangkan kursor PL/SQL untuk pemprosesan data berturut-turut. Ia memperincikan pengisytiharan kursor, pembukaan, pengambilan, dan penutupan, membandingkan kursor tersirat, eksplisit, dan ref. Teknik untuk pengendalian dataset besar yang cekap dan menggunakan gelung

Artikel ini mengkaji jenis segmen pangkalan data Oracle (data, indeks, pengembalian semula, sementara), implikasi prestasi mereka, dan pengurusan. Ia menekankan memilih jenis segmen yang sesuai berdasarkan beban kerja dan ciri -ciri data untuk kecekapan yang optimum

Artikel ini meneroka alat ujian prestasi pangkalan data Oracle. Ia membincangkan memilih alat yang betul berdasarkan belanjawan, kerumitan, dan ciri -ciri seperti pemantauan, diagnostik, simulasi beban kerja, dan pelaporan. Artikel ini juga memperincikan BO yang berkesan

Artikel ini membimbing pengguna melalui memuat turun pangkalan data Oracle. Ia memperincikan proses, menekankan pemilihan edisi (Express, Standard, Enterprise), keserasian platform, dan penerimaan perjanjian lesen. Keperluan Sistem dan Edisi Suitabil

Artikel ini meneroka alat klien pangkalan data Oracle, penting untuk berinteraksi dengan pangkalan data Oracle tanpa pemasangan pelayan penuh. Ia memperincikan alat yang biasa digunakan seperti sql*plus, pemaju sql, pengurus perusahaan, dan rman, menonjolkan keseronokan mereka

Artikel ini mengkaji ruang meja lalai Oracle (sistem, sysaux, pengguna), ciri -ciri mereka, kaedah pengenalan, dan implikasi prestasi. Ia berhujah menentang bergantung pada mungkir, menekankan pentingnya membuat tablespac berasingan

Artikel ini menerangkan cara membuat pengguna dan peranan dalam Oracle menggunakan arahan SQL, dan membincangkan amalan terbaik untuk menguruskan kebenaran pengguna, termasuk menggunakan peranan, mengikuti prinsip keistimewaan paling sedikit, dan audit biasa.

Butiran artikel ini Oracle Data Masking and Subsetting (DMS), penyelesaian untuk melindungi data sensitif. Ia meliputi mengenal pasti data sensitif, menentukan peraturan pelekat (shuffling, penggantian, rawak), menubuhkan pekerjaan, pemantauan, dan penyebaran
