写了一个测试job
begin
  sys.dbms_job.submit(job => :job,
                      what => 'test_insert',
                      next_date => to_date('05-01-2009 13:48:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(sysdate)+13/24+50/1440');
  commit;
end;
13:47创建job
13:48的时候,数据库插入了一条数据,查看job,此时next_date更新为13:50,到了13:50,查看job,next_date更新成了13:52,(13:52怎么来的?)
可是观察数据库,记录并没有增加!!!(为什么13:50不执行存储过程?)(疑问1)
在13:50之后,next_date仍然在更新,但是数据库中始终没有插入数据(疑问2)
-----------------------------------------------
谁能解释一下啊?

解决方案 »

  1.   

    没用过Oracle job,替楼主顶一下
      

  2.   

    如果job执行没有问题,那么先手动调式一下你的test_insert
      

  3.   

    按照这个job只会执行两次,一次是在13:48,一次是13:50分。之后这个job是不会跑的。
    第一个问题可能是存储过程没插入数据,而并不是没执行那个存储过程。
    第二个问题请楼下的解答。暂时也不懂
      

  4.   

    test_insert很简单,不需要调试
    create or replace procedure test_insert
     as
    begin
      insert into bgddata_2 (bgd_no)values(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'));
    end test_insert;
      

  5.   

    failures 2,原来除了第一次,后面的都失败了,可是直接执行存储过程是可以的啊
      

  6.   

    interval => 'trunc(sysdate)+13/24+50/1440'); 
    有错.
      

  7.   

    过程没问题,肯定JOB有问题
    interval =>trunc(sysdate)+1/144
    测试