zoukankan      html  css  js  c++  java
  • oracle任务job

    1)创建测试表

    1
    create table test1(a date);

    2)创建存储过程

    1
    2
    3
    4
    5
    create or replace procedure myproc as
    begin
      insert into test1 values(sysdate);
    end;
    /

    3)创建job

    1
    2
    3
    4
    5
    declare job1 number;
    begin
      dbms_job.submit(job1,'MYPROC;',sysdate,'sysdate+1/1440');//每分钟执行一次
      commit;
    end;

    ---------------------------或者-------------------------------

    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare
      job2 number;
    begin
      dbms_job.submit(job       => job2,
                      what      => 'myproc;',
                      next_date => sysdate,
                      interval  => 'sysdate+1/1440');
      commit;
    end;

    4)查询job

    1
    select job, broken, what, interval from user_jobs t;

        JOB BROKEN WHAT INTERVAL

    1 27 N MYPROC; sysdate+1/1440

    2 25 N p_auto_del_mobile_gxxj; sysdate+1

    3 26 N p_auto_del_mobile_gxxj; sysdate+1

    5)运行job

    1
    2
    3
    begin
      dbms_job.run(27);
    end;

    6)删除job

    1
    2
    3
    begin  
       dbms_job.remove(25);   
    end;

    job: 指的是job的id号。比如下面的 23

    failures:job执行的时候失败次数,如果超过了15次,那么broken列将被标为Y,以后就不会运行该job了

    broken:默认为N,如果为Y,意味着不再执行该job!

    interval:执行job的间隔时间。

    what:该job的实际工作

    sysdate+1/2      每隔12小时执行一次

    sysdate+3/1440   每隔 3 分钟执行一次

    trunc(sysdate+1) 每天凌晨

    trunc(sysdate+7)  每七天凌晨

    trunc(sysdate+30)  每30天凌晨

    next_day(trunc(sysdate), ''sunday'')  每周日凌晨

    trunc(sysdate+1)+6/24 每天6点

    trunc(sysdate+1)+1/3  每天的8点运行

    sysdate+30/1440 每30分钟

    trunc(last_day(sysdate)) + 1 每月第一天凌晨

    trunc(last_day(sysdate)) + 1 + 8/24 + 30/1440 每月第一天8点半

    每天的8点到20点之点,每隔15分钟运行一次

    1
    2
    3
    4
    5
    6
    7
    case
             when to_number(to_char(sysdate, 'hh24')) >= 8 and
                  to_number(to_char(sysdate, 'hh24')) <= 20 then
              sysdate + 15 / 1440
             else
              trunc(sysdate + 1) + 1 / 3
           end

    6-10月份,每隔30天的凌晨开始运行,其余月份每隔一天早上4点运行

    1
    2
    3
    4
    5
    6
    7
    case
             when to_number(to_char(sysdate, 'mm')) >= 6 and
                  to_number(to_char(sysdate, 'mm')) <= 10 then
              trunc(sysdate + 30)
             else
              trunc(sysdate + 1) + 1 / 6
           end
     
  • 相关阅读:
    javascript设计模式小记
    静态iframe异步加载
    博客搬家分割线
    大数据学习之MapReduce篇
    IDEA 创建javaWeb以及Servlet
    数组定义 二维数组 数组遍历 查找
    201720181 JAVA实验站 第二周作业
    201720181 JAVA实验站 第三周作业
    201720181 团队名称 第一周 作业
    C#语言编写的基于directshow的音视频格式转换
  • 原文地址:https://www.cnblogs.com/xyhero/p/dd1cfa49cfb0126669d6351446b49acb.html
Copyright © 2011-2022 走看看