定义存过:create or replace procedure proc_alarms
AS
teim date;
BEGIN
teim := sysdate;
insert into alarms(alarms.alarm_status,alarms.alarm_datetime) values(0,teim);
commit;
end proc_alarms;
定义job:begin
  sys.dbms_job.submit(job => :job,
                      what => 'proc_alarms;',
                      next_date => to_date('22-09-2011 14:37:09', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1/24/3600');
  commit;
end;
定时任务每隔一秒插入一条数据,结果每隔5秒插入一条数据,请问是什么原因?

解决方案 »

  1.   

    job任务调用时间占用
    如果想 1 秒插入一条数据,可以使用 dbms_lock.sleep()
      

  2.   

    dbms_lock.sleep()这个写在哪里呢?
      

  3.   

    任务执行时间的影响,这个应该是没办法克服了有什么需求是需要 1 秒执行一次的吗?那你不如写一个死循环的存储过程,往表里插数据,插一条 commit 一次,然后调用 dbms_lock.sleep(1); 休眠一秒
      

  4.   

    PL\SQL7.0 和8.0的功能不同。在8.0里可以正确执行,在7.0里就会有偏差~~~