1. 程式人生 > 其它 >oracle 定時任務增、刪、改、查

oracle 定時任務增、刪、改、查

增:

建立一個計劃任務

begin

sys.dbms_job.submit(job=>:job,

what=>'要定時執行的儲存過程名;',--例如:包名.儲存過程名; 記得寫分號

next_date=>to_date(''2021-10-08 7:00:00','yyyy-mm-dd hh24:mi:ss''),--下一次執行時間

interval=>'sysdate+7/24 );--執行間隔 每天7點執行

commit;

end;

刪:

exec sys.dbms_job.remove(計劃任務的job); --–系統自動分配的任務號job

改:

修改要執行的操作:job:dbms_job.what(job, what);

修改下次執行時間:dbms_job.next_date(job, next_date);

修改間隔時間:dbms_job.interval(job, interval);

啟動job:dbms_job.run(job);

停止job:dbms.broken(job, broken, nextdate);–broken為boolean值

oracle JOB常見的執行時間
1、每分鐘執行
TRUNC(sysdate,'mi')+1/(24*60)

2、每天定時執行
例如:
每天凌晨0點執行
TRUNC(sysdate+1)
每天凌晨1點執行
TRUNC(sysdate+1)+1/24
每天早上8點30分執行
TRUNC(SYSDATE+1)+(8*60+30)/(24*60)

3、每週定時執行
例如:
每週一凌晨2點執行
TRUNC(next_day(sysdate,1))+2/24
TRUNC(next_day(sysdate,'星期一'))+2/24
每週二中午12點執行
TRUNC(next_day(sysdate,2))+12/24
TRUNC(next_day(sysdate,'星期二'))+12/24

4、每月定時執行
例如:
每月1日凌晨0點執行
TRUNC(LAST_DAY(SYSDATE)+1)
每月1日凌晨1點執行
TRUNC(LAST_DAY(SYSDATE)+1)+1/24

5、每季度定時執行
每季度的第一天凌晨0點執行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')
每季度的第一天凌晨2點執行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')+2/24
每季度的最後一天的晚上11點執行
TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24

6、每半年定時執行
例如:
每年7月1日和1月1日凌晨1點執行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),6)+1/24

7、每年定時執行
例如:
每年1月1日凌晨2點執行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),12)+2/24

查:

select t.* from user_jobs t ;

轉載請記錄來源!!!! https://www.cnblogs.com/leihongnu/