《實作 dbms_job.submit》

摘要:《實作 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 一定要下