日期:2014-05-17  浏览次数:20881 次

oracle定时器
本人在oracle里写了3个定时器,都是在凌晨2点执行。
但是一开始执行了1次,后面就都不执行了。

RUN了。也不行。


delare jobno number;
 begin
dbms_job.submit(jobno,what=>'test;',next_date=>trunc(sysdate),interval=>'trunc(sysdate)+1+2/(24)');
commit;
end;

begin
dbms_job.run(1);
end;


test为存储过程的名字, dbms_job.run(1);是开始这个定时器。
但是这样他在凌晨2点的时候并没有运行。
在此求教。
oracle10g
有更好的方法的也请赐教一下。
谢谢
------解决方案--------------------

同学 你的 服务器的参数 job_queue_process 是不是设置成0 了。。。。
show parameter job_queue_process
这个参数是0的话job 相当于关闭了 job 功能,肯定不会自动执行了
oracle10g开始,推荐大家使用 dbms_scheduler 了,因此把这个参数默认设置成0了。。

------解决方案--------------------
原来如此,呵呵~
先要赋予create job权限,例如
grant create job to dreams1208;

然后执行
begin
  dbms_scheduler.create_job(
    job_name=>'job_test',
    job_type=>'STORED_PROCEDURE',
    job_action=>'test',
    repeat_interval=>'FREQ=DAILY;BYHOUR=2;BYMINUTE=0;BYSECOND=0',
    enabled=>true);
end;