Oracle Job定时任务使用详解

1、每天定点执行

declare
 jobno number;
 v_starttime date;
 v_interval varchar2(100);
begin

 v_starttime := trunc(sysdate + 1, 'dd') + 9.5 / 24; --运行时间:次日09:30运行
 v_interval := 'trunc(sysdate +1, ''dd'') +  9.5 / 24'; --间隔时间:每天运行一次
 dbms_job.submit(jobno, 'p_dt_attendance_listrecord_job;', v_starttime, v_interval);
end;

2、每过2小时执行一次

declare
  jobno number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => jobno,  /*自动生成JOB_ID*/  
        WHAT => 'P_DT_gettoken_job;',  /*需要执行的存储过程名称或SQL语句*/  
        NEXT_DATE => sysdate+1/(24*60*60),  /*初次执行时间下一秒*/  
        INTERVAL => 'sysdate+2/24' /*每隔2小时执行一次*/
      );  
  commit;
end;

3、作业修改

declare
 jobno number;
 v_starttime date;
 v_interval varchar2(100);
begin
 jobno := 1;
 v_starttime := trunc(sysdate + 1, 'dd') + (8*60+20)/(24*60); --运行时间:次日08:20运行
 v_interval := 'trunc(sysdate +1, ''dd'') + (8*60+20)/(24*60)'; --间隔时间:每天运行一次
 dbms_job.change(jobno, 'p_dt_attendance_listrecord_job;', v_starttime, v_interval);
end;

猜你喜欢

转载自blog.csdn.net/qq243348167/article/details/87882354