ORACLE JOB 使用基礎

 

一、ORACLE JOB概述

定時在後臺執行相關操作。

例如:每天晚上點將一張表的數據保存到另一張表中;定時備份數據庫等操作。

二、創建ORACLE JOB

1、  創建表

/*1、創建表*/

create table job_table(

       j_id number(12),

       j_date date

)

2、  創建序列

/*2、創建序列*/

create sequence job_seq

minvalue 1 maxvalue 999999999999 start with 1 increment by 1;

3、  創建過程

/*3、創建存儲過程*/

create or replace procedure job_pro

            is

            begin

                   insert into system.job_table values(job_seq.nextval,sysdate);

 end;

4、  創建job

DECLARE JOB NUMBER;
BEGIN

  SYS.DBMS_JOB.SUBMIT(JOB => JOB,                     
                      WHAT => 'job_pro;',                    
                      NEXT_DATE => sysdate,                    
                      INTERVAL => 'trunc(sysdate)+1+1/1440');
  COMMIT;

END;

DECLARE  JOB NUMBER;
BEGIN
  DBMS_JOB.SUBMIT(JOB,'job_pro;',SYSDATE, 'trunc(sysdate)+1+1/1440');
  COMMIT;
END;

           

            代碼講解:

            job:該參數是工作號(由submit()過程返回的binary_integer),它在問題中唯一標識工作。

            what: 可以理解爲,具體要做的操作,這裏指向一個存儲過程。

            next_date:該參數指示何時此操作被執行。

            interval:該參數指示一個工作重複執行的頻度。

            no_parse:該蠶食指示此工作在提交時或執行時是否應進行語法分析,TRUE:標識第一次執行時進行語法分析;FALSE:指示立即進行語法分析

 

注意:如果在job => job, 這裏,改成“job => :job,”,oracle則會報“並非所有變量都已綁定”異常。聲明瞭變量後,請把這個冒號去掉!

 PS:dbms_job package包含以下過程:

 ·Broken()過程;

·change()過程;

·interval()過程;

·isubmit()過程;

·next_date()過程;

·remove()過程;

·run()過程;

·submit()過程;

·user_export()過程;

·what()過程;

發佈了6 篇原創文章 · 獲贊 2 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章