又是个job的问题,急!!!

tiger9382 2004-10-14 04:03:21
我的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;这个值是在变的,我真的搞不定了,请大侠一定要帮忙,急!!!
...全文
168 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiger9382 2004-10-15
  • 打赏
  • 举报
回复
freddy2003,真的感谢你,在oracle805,运行alter system set job_queue_processes=10 scope=both;报了一个错误,我去掉scope=both参数项,呵呵,居然马上就生效了!!!
呵呵,真没搞懂,可能是oracle805的ora.ini文件中的参数改动有些需要重启,有些不需要吧。不管怎么说,还是非常谢谢大家的支持。
freddy2003 2004-10-15
  • 打赏
  • 举报
回复
alter system set job_queue_processes=10 scope=spfile;----更新到spfile,重启数据库才生效
alter system set job_queue_processes=10 scope=both;;----更新到spfile和内存,不用重启数据库就生效
alter system set job_queue_processes=10 scope=memory;;----更新到内存,立即生效,重启数据库后失效

不是所有的命令都有三种选择,有的只有其中的一种
bzszp 2004-10-15
  • 打赏
  • 举报
回复
我在816上可以,805的就不知道了
如果不可以的话,就没有办法了。
tiger9382 2004-10-15
  • 打赏
  • 举报
回复
bzszp(SongZip)
好象只有9I及以上的修改了参数不用重启,我的是805的,难道真的没有别的办法了吗!?
bzszp 2004-10-14
  • 打赏
  • 举报
回复
connect sys/change_on_install
bzszp 2004-10-14
  • 打赏
  • 举报
回复
alter system set job_queue_processes=10;
这个就是动态修改,不需要重启数据库。
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
各位大侠,我的数据库不能停,有没有不用启动数据库的办法落!
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
alter system set job_queue_processes=10 scope=both

ORA-02065: 非法的 ALTER SYSTEM 选项

我的不是超级用户,可能没有这个权限
freddy2003 2004-10-14
  • 打赏
  • 举报
回复
试试这个

alter system set job_queue_processes=10 scope=both;

然后
SQL> show parameter job;

看有没有内容
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
freddy2003()
兄弟,我的数据库不能重启啊,有没有别的办法啊!
freddy2003 2004-10-14
  • 打赏
  • 举报
回复
alter system set job_queue_processes=10 scope=spfile;
重启数据库
freddy2003 2004-10-14
  • 打赏
  • 举报
回复
你的参数据不对,设定job_queue_processes=10
alter system set job_queue_processes=10;
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
我现在运行下面的语句,结果成了这样了
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
!!!
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
freddy2003() 这位兄弟,我运行了
SQL> show parameter job;
但没反应啊,什么结果也没有!!!
tiger9382 2004-10-14
  • 打赏
  • 举报
回复
bzszp(SongZip) 如果不重新启动数据库,有没有别的办法!?
dinya2003(OK) 不用dbms_job.run(..) ,它第一次会自动运行吗?我按照你的方法试了也不行啊!
freddy2003 2004-10-14
  • 打赏
  • 举报
回复
用下面的语句
SQL> show parameter job;

NAME TYPE VALUE
------------------------------------ ------- -------------
job_queue_interval integer 10
job_queue_processes integer 4

看参数对不对?
dinya2003 2004-10-14
  • 打赏
  • 举报
回复
还有一个自动job参数要设置的,参数名我忘记了, :)
dinya2003 2004-10-14
  • 打赏
  • 举报
回复
SQL> variable job1 number;
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
3 end;

SQL> commit;

就这样就可以了. 不用dbms_job.run(..) 了.
bzszp 2004-10-14
  • 打赏
  • 举报
回复
修改init.ORA

加上:
job_queue_processes = 4
job_queue_interval = 60

重新启动数据库

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧