Oracle数据库中如何根据时间来执行JOB

  • 来源: 赛迪网 作者: 若水   2008-05-13/19:29
  •         问题:假设有一个存储过程p_test,如何才能每20分钟执行一次?
    解答:
    1、把init.ora中如下两个参数打开
    JOB_QUEUE_INTERVAL=60
    JOB_QUEUE_PROCESSES=4
    job_queue_keep_connections=true
    然后重启一个库,如果原来已经打开了则不用这步了
    2、示例,以下由sqlplus 来执行,具体参照一下相关的文档
    VARIABLE jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(:jobno,
    ’p_test;’
    SYSDATE,’SYSDATE + 1/72’);
    commit;
    END;
    DBMS_JOB.SUBMIT(:jobno,//job号
    ’your_procedure;’,//要执行的过程
    trunc(sysdate)+1/24,//下次执行时间
    ’trunc(sysdate)+1/24+1’//每次间隔时间
    );
    删除job:dbms_job.remove(jobno);
    修改job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);
    例子:
    VARIABLE jobno number;
    begin
    DBMS_JOB.SUBMIT(:jobno,
    ’Procdemo;’,
    SYSDATE, ’SYSDATE + 1/720’);
    commit;
    end;

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多