begin
  sys.dbms_job.submit(job => :job,
                      what => 'p_ag_performancejob;',
                      next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
                      interval => 'SYSDATE + 1/96');
  sys.dbms_job.broken(job => :job,
                      broken => true,
                      next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
  commit;
end;
/
仿照这个   帮我写个  15分钟  执行一个存储过程  p_ag_performancejob

解决方案 »

  1.   

    begin
      sys.dbms_job.submit(job => :job,
      what => 'p_ag_performancejob;',
      next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
      interval => 'SYSDATE + 15/24*60');
      sys.dbms_job.broken(job => :job,
      broken => true,
      next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
      commit;
    end;
    /
      

  2.   

    还有 能说明下 interval => 'SYSDATE + 1/96');  是什么时候执行一次 ?、?
      

  3.   

    呵呵!
    在SYSDATE上加1, 表示加1天(你可以这样测试出来:select sysdate+1 from dul;),
    那么sysdate+1/24就表示加一小时(一天有24小时),然后,1/24*60表示表示一分钟,那么(1/24*60)*15就表示15分钟。
      

  4.   

    可是 我感觉 这个 JOB 怎么 没执行啊  ???? 是不是哪些错了  
      

  5.   

    declare
    job number;
    begin
      dbms_job.submit(:job,'p_ag_performancejob;',sysdate,'SYSDATE + 15/24*60');
      commit;
    end;
    /
    job用不着向你上面写的那么复杂,个人认为也没有必要使用参数名来传变量值。我上面那个job是执行该sql匿名块的时候就第一次开始运行该job,以后每隔15分钟运行一次该job。
    job没有执行的可能性:
    1.可能是job调用的过程有问题(如过程调用的数据库对象无效)。
    2.job的执行时间安排有问题。
      

  6.   

    declare
    job number;
    begin
      dbms_job.submit(:job,'p_ag_performancejob;',sysdate,'SYSDATE + 15/24*60');
      commit;
    end;
    /
    job用不着向你上面写的那么复杂,个人认为也没有必要使用参数名来传变量值。我上面那个job是执行该sql匿名块的时候就第一次开始运行该job,以后每隔15分钟运行一次该job。
    job没有执行的可能性:
    1.可能是job调用的过程有问题(如过程调用的数据库对象无效)。
    2.job的执行时间安排有问题。