为Oracle增加计划任务


  经常在SQL Server上创建作业去定时执行某些任务,在Oracle下则一般都是通过编码的方式,通过项目自带的计划任务框架去调用存储过程。今天才发现,原来Oracle下创建一个计划任务要比SQL Server简单的多。

  1、创建计划任务:

  Sql代码

  X NUMBER;

  GIN

  SYS.DBMS_JOB.SUBMIT(job       => X,

  what      => 'PROC_YKTSJTB;',--存储过程名称

  next_date => trunc(sysdate+5/1440,'MI'),--下次执行时间

  interval  => 'trunc(sysdate+1440/1440,''MI'')',--间隔时间

  no_parse  => FALSE);

  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));

  COMMIT;

  D;

  X NUMBER;

  BEGIN

  SYS.DBMS_JOB.SUBMIT(job       => X,

  what      => 'PROC_YKTSJTB;',--存储过程名称

  next_date => trunc(sysdate+5/1440,'MI'),--下次执行时间

  interval  => 'trunc(sysdate+1440/1440,''MI'')',--间隔时间

  no_parse  => FALSE);

  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));

  COMMIT;

  END;

  以上主要注意三个参数:

  what  :需要计划任务执行的动作;

  next_date:下次计划任务执行的时间,具体时间可以根据oracle的trunc构造;

  interval:计划任务的执行周期;

  2、计划任务执行情况监控

  Sql代码

  select * from user_jobs;--查看调度任务

  select * from dba_jobs_running;--查看正在执行的调度任务

  select * from dba_jobs;--查看执行完的调度任务

相关内容