创建:
variable MyWork number;
begin
dbms_job.submit(:job1,'myProcedures(1);',sysdate,'sysdate+1/1440');
commit;
end;执行:
begin
dbms_job.run(:MyWork);
end;执行后应该是每分钟执行一次存储过程 myProcedures(1),作用是对一张表插入当前系统时间的记录
但是发现仅仅执行了一次(插入一条记录)
这是什么原因?望各位赐教?

解决方案 »

  1.   

    select * from user_jobs看看那个job记录的BROKEN、LAST_SEC、NEXT_DATE、NEXT_SEC的值。
      

  2.   

    Job连续16次(好像是)失败会被阻塞(Broken),时间溢出(next_XXX的值会异常)也会造成没有执行。
      

  3.   

    但是任务只执行了一次阿,难不成哪里设置有问题?
    我是照着网上的资料作的,代码在sql/plus的 Command Window 里面执行的
      

  4.   

    NEXT_DATE   NEXT_SEC 都显示有值
    THIS_DATE   THIS_SEC 没有值
      

  5.   

    BROKEN、LAST_SEC、NEXT_DATE、NEXT_SEC的值是什么呢???
      

  6.   

    我晕,是JOB_QUEUE_PROCESSES2值为0了所以执行一次
    可以通过 select * from v$parameter 看看
    通过 alter system set JOB_QUEUE_PROCESSES=10 修改后,再试试
      

  7.   

    按照 mayongzhi 老兄的方法试了一下,确实可以正常执行了。
    但是,如果数据库服务器重新启动,则任务不再执行了,必须再次手动启动任务才行。这个情况可不是符合项目要求的。
    同时再看看了网上有关的资料,使用job形式启动定期任务,在9i的版本中,会出现497 days bug,这个似乎看起来还没有什么解决之道。