做的一个项目,遇到写job调用存储过程的,明明很简单的几句话,我调试了整整一个下午。。。。,在plsql中新建个command window,最后调试成功的结果如下:
SQL>variable job number;
SQL>begin
2 sys.dbms_job.submit(job => :job,
3 what => 'begin SP_PM_HALF_AVG_JYTIME;end;',
4 next_date => to_date('22-10-2013 12:30:00', 'dd-mm-yyyy hh24:mi:ss'),
5 interval => ‘sysdate+30/1440’);
6 commit;
7 end;
8 /
解释:第一行定义变量,job的编号,创建成功后会得到一个编号,what=>后面是调用存储过程,next_date是job下次执行的时间,interval是间隔时间,一定要加引号。
我写的这个是每过半小时调用存储过程,开始几天都没事。。后来发现不是整、半点调用的了。。上网搜了才知道,有执行时间导致的误差,最后把间隔时间改成
'trunc(sysdate+30/1440,''MI'')');
这样就没有问题了。