zoukankan      html  css  js  c++  java
  • Oracle Scheduler Postponed job

    前面的例子中,可以使用plsql语法指定repeat_interval
    repeat_interval => 'sysdate + interval ''10'' second'

    =================================================================
    在 指定时间,前一个instance还在运行的情况下,会发生什么?
    =================================================================

    被 执行的sp随机停止8-12秒( p_2使用了dbms_lock,这个必须有权限)
    grant execute on dbms_lock to xxx;
    create or replace procedure p_2 is
      l_c integer;
    begin
      select trunc(dbms_random.value(8,12)) into l_c from dual;
      insert into scheduler_test(x,y) values(to_char(sysdate,'yyyymmdd hh24:mi:ss'),l_c);
      commit;
      sys.dbms_lock.sleep(l_c);
    end;
    /

    每10 秒的整点运行一次
    declare
      l_x integer := 0;
    begin
      dbms_scheduler.create_job(job_name        => 'ttt',
                                job_type    => 'stored_procedure',
                                job_action => 'p_2',
                                start_date      => systimestamp,
                                repeat_interval => 'freq=minutely;interval=1;bysecond=0,10,20,30,40,50');

      dbms_scheduler.enable('ttt');
    end;
    /

    SQL> col x for a20
    SQL> col y for a5
    SQL> select * from scheduler_test order by 1;
     
    X                        Y
    -------------------- -----
    20070802 10:40:40       10
    20070802 10:40:50       10
    20070802 10:41:01       10
    20070802 10:41:11        8
    20070802 10:41:20        9
    20070802 10:41:30        9
    20070802 10:41:40       10
    20070802 10:41:50       11

    从 结果分析看出,job会被延迟执行。如上面第3条应该在0秒执行,但是被延迟到01秒

  • 相关阅读:
    关于Spring和Struts2的整合
    有关Transaction not successfully started问题解决办法
    两种页面跳转
    jdbc连接mysql
    change和modify
    Navicat Premium 15连接Oracle时提示oracle library is not loaded的解决方案
    Oracle创建本地数据库实例及配置监听
    下载Visual Studio 2019离线安装包
    简单的数据库
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
  • 原文地址:https://www.cnblogs.com/wait4friend/p/2334555.html
Copyright © 2011-2022 走看看