摘要:《實作 dbms_job.submit》
dbms_job 雖然在 oracle 10g 已經由 dbms_schedule 取代;
因為工作環境還在 oracle 9i,所以就趁這機會簡單的實作一下 dbms_job。
參考一下 dbms_job.submit 的參數
PROCEDURE SUBMIT
參數名稱 類型 In/Out 預設值?
------------------------------ ----------------------- ------ --------
JOB BINARY_INTEGER OUT
WHAT VARCHAR2 IN
NEXT_DATE DATE IN DEFAULT
INTERVAL VARCHAR2 IN DEFAULT
NO_PARSE BOOLEAN IN DEFAULT
INSTANCE BINARY_INTEGER IN DEFAULT
FORCE BOOLEAN IN DEFAULT
-- 先建立要作業的資料表
SQL> create table tingjob as (select to_char(sysdate-rownum,'YYYYMMDD') DateList from dba_objects where rownum<=1000);
已建立表格.
-- 建立要被定時run的procedure
-- 這裡是每次要刪除tingjob一筆資料
SQL> create procedure deltingjob
2 is
3 begin
4 delete from tingjob where rownum=1;
5 commit;
6 end;
7 /
已建立程序.
-- 接下來正題就是要submit job
SQL> declare
2 jobid binary_integer;
3 begin
4 dbms_job.submit(jobid,'deltingjob;',sysdate,'sysdate-1/1440');
5 .
SQL> declare
2 jobid binary_integer;
3 begin
4 dbms_job.submit(jobid,'deltingjob;',sysdate,'sysdate+1/1440');
5 commit;
6 end;
7 /
PL/SQL 程序順利完成.
-- 注意 commit 一定要下