ORACLE的定時器

2021-06-19 03:32:16 字數 1613 閱讀 2004

--建立日誌資訊表(測試表)

create table t_log (

id number,

datetime date

);--插入測試資料

insert into t_log values (1,'25-5月-2006');

--檢視日誌資訊

select * from t_log;

--建立刪除日誌資訊的儲存過程

create or replace

procedure pro_clear_log  as

begin

delete from t_log where datetime < add_months(sysdate,-12);   --刪除一年前的儲存過程

commit;

end;

--建立排程任務  

declare   

jobno number;   

begin   

dbms_job.submit(

jobno,

what => 'pro_clear_log;',   --pro_clear_log為儲存過程的名稱

interval => 'trunc(sysdate,''mi'') + 1 / (24*60)'   --定義時間間隔

);   

commit;   

end; 

select * from user_jobs;--檢視排程任務  

select * from dba_jobs_running;--檢視正在執行的排程任務  

select * from dba_jobs;--檢視執行完的排程任務

--刪除排程任務  

declare   

jobno number;   

begin   

dbms_job.remove(48) ;

commit;   

end; 

1、 每分鐘執行

interval => trunc(sysdate,』mi』) + 1 / (24*60)

2、 每天定時執行

例如:每天的凌晨2點執行

interval => trunc(sysdate) + 1 +2 / (24)

3、 每週定時執行

例如:每週一凌晨2點執行

interval => trunc(next_day(sysdate,2))+2/24 --星期一,一周的第二天

4、 每月定時執行

例如:每月1日凌晨2點執行

interval =>trunc(last_day(sysdate))+1+2/24

5、 每季度定時執行

例如每季度的第一天凌晨2點執行

interval => trunc(add_months(sysdate,3),'q') + 2/24

6、 每半年定時執行

例如:每年7月1日和1月1日凌晨2點

interval => add_months(trunc(sysdate,'yyyy'),6)+2/24

7、 每年定時執行

例如:每年1月1日凌晨2點執行

interval =>add_months(trunc(sysdate,'yyyy'),12)+2/24

Oracle建立定時器

建立日誌資訊表 測試表 create table t log id number,datetime date 插入測試資料 insert into t log values 1,25 5月 2006 檢視日誌資訊 select from t log 建立刪除日誌資訊的儲存過程 create or r...

Oracle定時器寫法

oracle定時器寫法 定義乙個規則 如果是定時輪詢的job 下面 submit函式裡面的 第三個引數不填寫 sql declare job number begin dbms job.submit job,exe data checker trunc sysdate 1 2 24 commit e...

Oracle中的定時器

oracle中的定時器 begin sys.dbms job.submit job job,what check err next date trunc sysdate 23 24,interval trunc next day sysdate,星期五 23 24 commit end 其中 job...