如何编写一个JOB 让它每天早上8点到晚上18点,每小时都把存储过程执行一遍呢?

解决方案 »

  1.   

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'glsjjh;',
                          next_date => sysdate,
                          interval => 'trunc(sysdate+1/24,''HH'')');
      commit;
    end;
    /
      

  2.   

    假如是10G的话,可以使用DBMS_SCHEDULER,
    他的一个参数,BYHOUR,可以指定启动的时间。
    比如说:
    dbms_scheduler.create_schedule('main_sched', repeat_interval =>
      'FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=15;BYHOUR=9,17;INCLUDE=embed_sched');就是9点和17点的时候执行。
      

  3.   

    dbms_scheduler也有start_date和end_date的参数。文档:
    http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10802/d_sched.htm#ARPLS138
      

  4.   

    难道9I就只能够 每天早上8点到晚上18点之间 每小时为它定义一个JOB?
      

  5.   

    可以把你要执行的存储过程修改下  加上个开关看时间是不是在8点和18点内  如果不是
    就跳出(也就是执行为空)   如果执行就让他往下执行 其实就是加个IF ELSE就可以了变通一下   实现起来就很简单