Rumah > Artikel > pangkalan data > Bagaimana untuk melaksanakan prosedur tersimpan dalam Oracle dengan kerap
Dalam aplikasi peringkat perusahaan, kami tidak boleh hanya bergantung pada pengguna untuk melakukan operasi manual untuk mencapai kefungsian yang diperlukan. Oleh itu, tugas berjadual adalah penting, yang amat berguna untuk melaksanakan pemprosesan latar belakang dan pemuatan data. Pangkalan data Oracle menyediakan prosedur tersimpan dan tugas berjadual untuk memudahkan kerja pembangun dan pentadbir. Dalam artikel ini, kami akan menumpukan pada kaedah menggunakan tugas berjadual Oracle untuk melaksanakan prosedur tersimpan dengan kerap.
Tugas berjadual Oracle
Tugas berjadual dalam pangkalan data Oracle boleh dibuat menggunakan pakej DBMS_SCHEDULER. Pakej ini membolehkan kami mencipta pekerjaan dengan keperluan penjadualan yang kompleks. Ia boleh menyokong pelbagai frekuensi seperti setiap jam, harian, mingguan, bulanan, tahunan, dll. Tugas berjadual juga boleh dilaksanakan pada tarikh dan masa tertentu, atau bahkan dalam zon waktu yang berbeza. Jenis objek berikut boleh dibuat menggunakan pakej DBMS_SCHEDULER.
Dalam artikel ini, kami akan menumpukan pada cara menggunakan DBMS_SCHEDULER untuk mencipta kerja dan mengikatnya pada prosedur tersimpan yang ingin kami laksanakan.
Buat prosedur tersimpan
Kita perlu membuat prosedur tersimpan terlebih dahulu untuk melaksanakan operasi tugasan yang ingin kita selesaikan. Di bawah ialah contoh mudah prosedur tersimpan yang akan memasukkan masa semasa ke dalam jadual.
CREATE OR REPLACE PROCEDURE INSERT_TIME AS BEGIN INSERT INTO TIME_LOG (LOG_TIME) VALUES (SYSDATE); COMMIT; END INSERT_TIME;
Buat Kerja
Dengan prosedur tersimpan di tangan, kami seterusnya perlu mencipta kerja untuk menjadualkan pelaksanaannya. Kerja yang akan kami buat akan memasukkan waktu semasa setiap pagi pada pukul 6. Di bawah ialah contoh menggunakan fungsi DBMS_SCHEDULER.CREATE_JOB untuk mencipta kerja ini.
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'INSERT_TIME_JOB', job_type => 'STORED_PROCEDURE', job_action => 'INSERT_TIME', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYHOUR=6;', enabled => TRUE, comments => 'Insert current time every day at 6 AM'); END;
Apabila menggunakan fungsi CREATE_JOB untuk mencipta kerja, kita perlu mengikut perihalan parameter berikut:
Ikat kerja dengan prosedur tersimpan
Dalam contoh di atas, kami mencipta kerja dan menetapkan prosedur tersimpan untuk pelaksanaannya. Sekarang, kita perlu mengikat kerja ini kepada prosedur tersimpan kami supaya ia melaksanakan operasi pada masa yang ditentukan. Kita boleh menggunakan fungsi DBMS_SCHEDULER.SET_ATTRIBUTE untuk menyelesaikan tugas ini.
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'INSERT_TIME_JOB', attribute => 'program_action', value => 'INSERT_TIME;'); END;
Dalam contoh ini, kami menggunakan fungsi SET_ATTRIBUTE untuk menetapkan atribut "program_action" bagi tugas "INSERT_TIME_JOB" kepada "INSERT_TIME". Ini akan memberitahu DBMS_SCHEDULER untuk memanggil prosedur tersimpan INSERT_TIME pada masa tertentu.
Kami telah mempelajari cara menggunakan pakej DBMS_SCHEDULER untuk mencipta kerja berjadual dan mengikat tugas dalam prosedur tersimpan. Sekarang, kita boleh menunggu tugas yang dijadualkan untuk melaksanakan dan melihat rekod dalam jadual TIME_LOG.
Kesimpulan
Menggunakan fungsi tugas berjadual pangkalan data Oracle boleh membantu kami melaksanakan tugas pemprosesan latar belakang dengan mudah. Pakej DBMS_SCHEDULER menyediakan banyak pilihan untuk memenuhi keperluan aplikasi khusus kami, seperti pelaksanaan berulang, pelaksanaan selari, pemulihan kegagalan, dsb. Selain itu, ia mempunyai keupayaan untuk melaksanakan kerja merentas zon masa, tarikh, minggu, bulan, dsb. yang berbeza, yang menjadikan tugas berjadual sangat fleksibel. Dalam artikel ini, kami memberi tumpuan kepada cara menggunakan tugas berjadual Oracle untuk melaksanakan prosedur tersimpan dengan kerap. Kami berharap artikel ini dapat memberi anda panduan berguna dan membantu anda memahami dengan lebih baik penggunaan dan prinsip operasi tugas berjadual berdasarkan pangkalan data Oracle.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan prosedur tersimpan dalam Oracle dengan kerap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!