使用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

 

 

 

posted @ 2020-06-05 18:08  masha2017  阅读(1133)  评论(0编辑  收藏  举报