使用pl/sql创建一个定时计划job
背景:会议室系统需要不同时间段更新会议室预约的状态。就需要用到定时计划不断的自动更新状态。
1、创建一个job,右键job,点击新建。
2、填写sql、下一次执行日期、间隔
3、填写完成点击应用即可。
===============================================================================
如何一次执行多条语句。只需用一个分号隔开即可。
关于下一个日期,只需手动填写即可。
关于间隔的填写
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
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
还有其他。。。
具体参考:https://blog.csdn.net/qiao000_000/article/details/4714388
如何检查自己写的对不对?
使用sql语句查询,就能更直观的看到最后一次的执行时间和下一次的执行时间,就能判断自己写的执行周期是否正确了。
select * from dba_jobs
关于更多的查询语句
select * from dba_jobs; //查看所有用户的job select * from dba_jobs_running; //查看当前正在运行的job select * from user_jobs; //查看当前用户的job