DBMS_JOB.SUBMIT用于定时任务,基本用法如下:
DBMS_JOB.SUBMIT(:jobno,//job号
'your_procedure;',//要执行的过程
trunc(sysdate)+1/24,//下次执行时间
'trunc(sysdate)+1/24+1'//每次间隔时间
);
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
今天遇到一个问题是,有些任务需要周期执行,有些任务只需要执行一次。开始时没注意,在第四个参数里传了空字符串,结果任务一建立就直接执行了。
后来查了资料才知道,如果单次执行,第四个参数需要传null。
试了一下,果然是这样。