在数据库中定义定时任务要方便很多,下面是一个实例
在dbms_job.submit()方法中,定义参数时写明了每个参数的名称,因为该方法有很多参数(网上很多实例没有定义参数名,可能是由于oracle版本的问题,我的始终报错:参数未完全绑定,所以必须加上参数名)
declarejobno number; //job号码begindbms_job.submit(job=>jobno, //job号 what=>'dailyTaskPkg.insert_daily_task_everyday;', //执行的存储过程 next_date=>sysdate, //下次执行时间 interval=>'TRUNC(sysdate)+1'); //时间间隔每天一点执行commit;end;
这样写,会立即执行一次定时任务。
查看所有job:
select job, next_date, next_sec, failures, broken from user_jobs;
得到job number后就可以执行一系列操作:启动,暂停,删除等
begin dbms_job.run(3); end;begin dbms_job.broken(3,true); end;