广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-04-09 07:41:59 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布

      问题:假设有一个存储过程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;

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告