oracle定时器
本人在oracle里写了3个定时器,都是在凌晨2点执行。
但是一开始执行了1次,后面就都不执行了。
RUN了。也不行。
SQL code
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;
然后执行
SQL code
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;