我的ORACLE是805的,我的job是这样写的:
创建JOB
SQL> variable job1 number;
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /第一次运行了后它就不再执行了,在SQLPLUS中我运行select job,next_date from all_jobs;发觉next_date的值一直没有变,运行select SYSDATE+1/1440 from dual;这个值是在变的,我真的搞不定了,请大侠一定要帮忙,急!!!
创建JOB
SQL> variable job1 number;
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /第一次运行了后它就不再执行了,在SQLPLUS中我运行select job,next_date from all_jobs;发觉next_date的值一直没有变,运行select SYSDATE+1/1440 from dual;这个值是在变的,我真的搞不定了,请大侠一定要帮忙,急!!!
加上:
job_queue_processes = 4
job_queue_interval = 60 重新启动数据库
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;SQL> commit;就这样就可以了. 不用dbms_job.run(..) 了.
SQL> show parameter job;NAME TYPE VALUE
------------------------------------ ------- -------------
job_queue_interval integer 10
job_queue_processes integer 4看参数对不对?
dinya2003(OK) 不用dbms_job.run(..) ,它第一次会自动运行吗?我按照你的方法试了也不行啊!
SQL> show parameter job;
但没反应啊,什么结果也没有!!!
select sysdate+1/1440 a,next_date b from all_jobs;a B
-------------------------- ---------------------
2004-10-14 16:24:39 2004-10-14 16:17:25
!!!
alter system set job_queue_processes=10;
重启数据库
兄弟,我的数据库不能重启啊,有没有别的办法啊!
SQL> show parameter job;看有没有内容
这个就是动态修改,不需要重启数据库。
好象只有9I及以上的修改了参数不用重启,我的是805的,难道真的没有别的办法了吗!?
alter system set job_queue_processes=10 scope=both;;----更新到spfile和内存,不用重启数据库就生效
alter system set job_queue_processes=10 scope=memory;;----更新到内存,立即生效,重启数据库后失效不是所有的命令都有三种选择,有的只有其中的一种
呵呵,真没搞懂,可能是oracle805的ora.ini文件中的参数改动有些需要重启,有些不需要吧。不管怎么说,还是非常谢谢大家的支持。