zoukankan      html  css  js  c++  java
  • oracle 任务定时执行

    在oracle可以像sql server那样建立定时任务.

    下面我使用oracle sql创建一个定时任务.

    1.创建一个简单的表.

    create table testdate

    (

      name varchar2(20),

      createdate date

    )

    2.创建一个存储过程.

    create procedure Proc_addTestdate
    as
    begin
         insert into testdate values('abc',SYSDATE);
    end;

    3.创建任务

    DECLARE
           X NUMBER;
    BEGIN
       SYS.DBMS_JOB.SUBMIT
       (
        job        => X

      --执行存储过程名称
       ,what       => 'Proc_addTestdate;'
       ,next_date  => to_date('09-12-2008 00:00:00','dd/mm/yyyy hh24:mi:ss')
       ,interval   => 'TRUNC(SYSDATE+1)'
       );
    END;

    其中:
    ●job:输出变量,是此任务在任务队列中的编号;
    ●what:执行的任务的名称及其输入参数;
    ●next_date:任务执行的时间;
    ●interval:任务执行的时间间隔。

    时间间隔
    1)、 每分钟执行
    Interval => TRUNC(sysdate,'mi') + 1 / (24*60)
    2)、 每天定时执行
    例如:每天的凌晨2点执行
    Interval => TRUNC(sysdate) + 1 +2 / (24)
    3)、 每周定时执行
    例如:每周一凌晨2点执行
    Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
    4)、 每月定时执行
    例如:每月1日凌晨2点执行
    Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
    5)、 每季度定时执行
    例如每季度的第一天凌晨2点执行
    Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
    6)、 每半年定时执行
    例如:每年7月1日和1月1日凌晨2点
    Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
    7)、 每年定时执行
    例如:每年1月1日凌晨2点执行
    Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

    4.执行任务

    begin
           SYS.DBMS_JOB.RUN(1);
    end;

    5.删除任务

    begin

      --任务序号
         sys.DBMS_JOB.REMOVE(2);
    end;

  • 相关阅读:
    CSS:清除浮动小技巧
    CSS:可见格式化模型BFC与应用
    JavaScript:所有视图属性和方法(innerWidth、outerHeight、clientX等)
    JavaScript:正则表达式(入门篇)
    JavaScript:六种继承比较
    表格内展示2行,超出部分省略
    Docker删除大量停止的container
    docker学习笔记
    使用redis实现分布式锁
    Sublime text 3 如何格式化HTML/css/js代码
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1351164.html
Copyright © 2011-2022 走看看