我想每天5:35执行过程DPC_DATAPROCESS,在调试的时候先把数据库时间调到2004-9-16 5:35:33,然后设置:
declare job1 number;
begin
dbms_job.submit(job1,'DPC_DATAPROCESS;',trunc(sysdate)+(5*60+35)/(24*60),'TRUNC(SYSDATE + 1) + (5*60+35)/(24*60)');
commit;
end;
但过了时间还是没有执行,需要用dbms_job.run(job1);--强制执行指定任务才能执行;
执行后看到 NEXT_DATE:2004-9-17 5:35:00,我再把时间调到2004-9-17 5:33:00,但过了5:35后还是没有执行!!
请问到底有怎么设置才能执行啊!interval的值和第一次执行时间有关系吗?
declare job1 number;
begin
dbms_job.submit(job1,'DPC_DATAPROCESS;',trunc(sysdate)+(5*60+35)/(24*60),'TRUNC(SYSDATE + 1) + (5*60+35)/(24*60)');
commit;
end;
但过了时间还是没有执行,需要用dbms_job.run(job1);--强制执行指定任务才能执行;
执行后看到 NEXT_DATE:2004-9-17 5:35:00,我再把时间调到2004-9-17 5:33:00,但过了5:35后还是没有执行!!
请问到底有怎么设置才能执行啊!interval的值和第一次执行时间有关系吗?
SQL> show parameter jobNAME TYPE VALUE
------------------------------------ ------- ------------------------------
job_queue_processes integer 10
如果小的话
SQL> alter system set job_queue_processes=10
2 /
系统已更改。
加上:
job_queue_processes = 10
job_queue_interval = 60
然后重新启动数据库
job_queue_processes = 1
job_queue_interval = 60
distributed_transactions = 10
open_links = 4
第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。
第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。