Prosedur tersimpan Oracle ialah objek pangkalan data tersusun yang boleh dilaksanakan berulang kali Untuk mengoptimumkan prestasi pangkalan data dan menjimatkan masa, banyak pembangun menggunakan prosedur tersimpan. Tetapi apabila ralat berlaku dalam prosedur tersimpan, penyahpepijatan boleh menjadi rumit. Artikel ini akan memperkenalkan beberapa petua dan kaedah untuk menyahpepijat prosedur tersimpan dalam Oracle.
1. Tetapkan bendera nyahpepijat prosedur tersimpan
Untuk memulakan nyahpepijat prosedur tersimpan, anda perlu menetapkan bendera nyahpepijat dalam kod. Oracle menyediakan pakej yang dipanggil DBMS_DEBUG di mana bendera penyahpepijatan ditetapkan. Kaedah khusus ialah:
sqlplus / as sysdba
SQL> @%ORACLE_HOME%RDBMSadmindbmsdbg.sql
SQL>
SQL> EXECUTE DBMS_DEBUG_JDWP.CONNECT_TCP('localhost', '4000');
nama hos setempat dan 4000 ialah port penyahpepijatan Java.
SQL> LAKSANAKAN DBMS_DEBUG_JDWP.SET_BREAKPOINT('schema.package.procedure', 'procedure',1);
Di mana skema ialah skema di mana prosedur tersimpan terletak, pakej ialah pakej di mana prosedur tersimpan terletak, prosedur ialah nama prosedur tersimpan dan 1 ialah nombor baris di mana nyahpepijat perlu ditetapkan.
2. Penyahpepijat jauh bagi prosedur tersimpan
Sebelum penyahpepijat jauh prosedur tersimpan, anda perlu terlebih dahulu menyediakan penyahpepijat Java (seperti Eclipse atau IntelliJ IDEA) secara setempat. Kemudian ikuti langkah ini untuk menetapkan bendera penyahpepijatan jauh dalam Oracle:
SQL> LAKUKAN DBMS_DEBUG_JDWP.CONNECT_TCP('localhost','4000′);
SQL> LAKSANAKAN DBMS_DEBUG_JDWP.SET_BREAKPOINT('schema.package.procedure', 'procedure',1);Tamatkan mod penyahpepijatan jauh dalam pakej DBMS_DEBUG yang memberitahu Oracle:
Buka PL/SQL Developer
Buka kod sumber prosedur tersimpan yang perlu dinyahpepijat
Klik kanan pada baris yang perlu dinyahpepijat dan pilih "Togol Breakpoint ” untuk menetapkan titik putus
BERMULA
DBMS_OUTPUT.PUT_LINE('Hello World!');END;
Pilihan nyahpepijat:
Pilihan nyahpepijat ditetapkan menggunakan pernyataan PRAGMA dalam prosedur tersimpan. Contoh kod adalah seperti berikut:
BUAT ATAU GANTIKAN PROSEDUR my_procedure IS
v_debug BOOLEAN := TRUE;
MULAI
JIKA v_debug THEN 🎜>TAMAT JIKA;
...
TAMAT;
Di atas ialah beberapa petua dan kaedah untuk menyahpepijat prosedur tersimpan dalam Oracle. Menggunakan kaedah ini, anda boleh menyahpepijat prosedur tersimpan dengan lebih cekap dan menjadikannya berjalan lebih pantas. Jika anda perlu berurusan dengan prosedur tersimpan dalam Oracle untuk masa yang lama, adalah sangat disyorkan agar anda menguasai teknik ini.
Atas ialah kandungan terperinci Beberapa petua dan kaedah untuk menyahpepijat prosedur tersimpan dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!