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/