1、ORACLE JOB概述數據庫
定時在後臺執行相關操做。oracle
例如:天天晚上點將一張表的數據保存到另外一張表中;定時備份數據庫等操做。spa
2、建立ORACLE JOBorm
一、 建立表ci
/*1、建立表*/rem
create table job_table(it
j_id number(12),table
j_date dateast
)class
二、 建立序列
/*2、建立序列*/
create sequence job_seq
minvalue 1 maxvalue 999999999999 start with 1 increment by 1;
三、 建立過程
/*3、建立存儲過程*/
create or replace procedure job_pro
is
begin
insert into system.job_table values(job_seq.nextval,sysdate);
end;
四、 建立job
declare job number;
begin
sys.dbms_job.submit(job => job,
what => 'job_pro;',
next_date => to_date('13-07-2011 00:01:00',
'dd-mm-yyyy hh24:mi:ss'),
interval => '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()過程;