请问oracle的定时任务能不能做到每月指定日期执行存储过程,并且可以在这天开始执行后能够间隔指定的时间运行几次。
比如:有个定时任务,要求每月10日8:00执行,等到了这天的8:00,系统开始调用存储过程,之后每隔1个小时执行一次,并且只连续执行5次,5次运行完后,系统只能等到下月的10日8:00再重新启动。
oracle能够做到吗?

解决方案 »

  1.   

    可以,用DBMS_SCHEDULER.CREATE_JOB实现,一个例子如下: BEGIN
    DBMS_SCHEDULER.CREATE_JOB(
    job_name => 'my_test_job',
    job_type => 'STORED_PROCEDURE',
    job_action => 'my_store_procedure',
    start_date => trunc(add_months(sysdate,1),'MM')+INTERVAL '09' DAY from dual,
    repeat_interval => 'FREQ=MONTHLY; BYMONTHDAY=10; BYHOUR=8,9,10,11,12',
    enabled => TRUE,
    comments => 'My test job'
    );
    END;
    /START_DATE部分是指从下月10日开始给你个连接,研究一下DBMS_SCHEDULER
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_sched.htm#CIHHBGGI