1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
或
Interval => sysdate+1/1440
2:每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定时执行
例如:每周一凌晨1点执行
Interval =>
TRUNC(next_day(sysdate,'星期一'))+1/24
4:每月定时执行
例如:每月1日凌晨1点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5:每季度定时执行
例如每季度的第一天凌晨1点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') +
1/24
-- 每季度的最后一天的晚上11点执行 quarter
TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24
-- 上个季度最后一天(可以用本季度第一天减去1得到)
SELECT to_char(TRUNC(SYSDATE, 'Q') - 1, 'YYYY-MM-DD') FROM
dual;
-- 本季度第一天
select to_char(trunc(sysdate,'Q'),'yyyy-MM-dd') from dual;
-- 本季度最后一天
select to_char(add_months(trunc(sysdate,'Q'),3)-1,'yyyy-MM-dd')
from dual;
-- 本年第一天
select trunc(sysdate,'yyyy') from dual;
-- 本年最后一天
select add_months(trunc(sysdate,'yyyy'),12)-1 from
dual;
6:每半年定时执行
例如:每年7月1日和1月1日凌晨1点
Interval =>
ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7:每年定时执行
例如:每年1月1日凌晨1点执行
Interval
=>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
-- 脚本修改间隔
-- dbms_job.interval(jobno, interval);
-- 在PL SQL 中的测试窗口中执行以下示例语句,下面示例是每年的一月一号执行一次,001指job的id
-- dbms_job.interval(001,
'ADD_MONTHS(trunc(sysdate,''yyyy''),12)+1/24');