oracle job执行说明

来源:互联网 发布:不可使知之拼音 编辑:程序博客网 时间:2024/05/16 00:33

-.查看当前任务队列
  select * from dba_jobs t where t.what like 'p_wap_stat_rmsx%'
  --what 为执行任务名称,可以是存储过程或其它可执行实体

二.执行时间设置
  每天午夜12点 'TRUNC(SYSDATE + 1)'
  每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
  每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
  每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
  每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
  每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) +    (6*60+10)/(24*60)'
  在Oracle JOB间隔时间参考,其中li_jobno是它的ID,可以通过这个ID停掉这个任务,最后想说的是不要执行多次,你可  以在里面管理起来,发现已经运行了就不SUBMIT
  每天运行一次 'SYSDATE + 1'
  每小时运行一次 'SYSDATE + 1/24'
  每10分钟运行一次 'SYSDATE + 10/(60*24)'
  每30秒运行一次 'SYSDATE + 30/(60*24*60)'
  每隔一星期运行一次 'SYSDATE + 7'
  每年1月1号零时trunc(last_day(to_date(extract(year from sysdate)||'12'||'01','yyyy-mm-dd'))+1)

    三.举例说明
      oracle job 工具包 dbms_job
      存储过程:p_wap_stat_rmsx 没有参数
      设置每10分钟执行一次
      以下命令必须在命令窗口执行,如下:
       1. 提交job
   SQL> variable job1 number;
     SQL> begin
       2  dbms_job.submit(:job1,'p_wap_stat_rmsx;',sysdate,'sysdate+1/144');
       3  end;
       4  /
  dbms_job.submit 参数说明:
  job为任务唯一数字标识,what为任务描述,如果为存储过程则为存储过程名称需以“;”分号结束
  next_date为下次执行时间,interval为执行间隔,可以是以分,秒,小时
  dbms_job.submit(job => :jobno2,
                  what => 'P_POST_LIST;',
                  next_date => sysdate+1/480,
                  interval => 'SYSDATE + 1/480');
  2.删除job
    dbms_job.remove(job); 参数为job唯一数字标识
  3.立刻执行job
    dbms_job.run(job);    参数为job唯一数字标识

 

 

原创粉丝点击