精华内容
下载资源
问答
  • oracle定时任务中的时间设置

    千次阅读 2019-09-30 08:20:07
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...1、简单的定时任务时间设置。 描述 参数值 每天运行一次 'SYSDATE + 1' 每小时运行一次 ‘SYSDATE+1/24’ 每10分钟运...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/Aeyewp/article/details/70228010
    1、简单的定时任务时间设置。


    描述      参数值   
    每天运行一次    'SYSDATE + 1'
    每小时运行一次    ‘SYSDATE+1/24’
    每10分钟运行一次    'SYSDATE + 10/(60*24)'
    每30秒运行一次    'SYSDATE + 30/(60*24*60)'
    每隔一星期运行一次    'SYSDATE + 7'

    2、特定时间的定时任务时间设置。


    描述     INTERVAL参数值
    每天午夜十二点    ‘TRUNC(SYSDATE+1)’
    每星期二中午12点    
    'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
    每个月第一天的午夜12点    'TRUNC(LAST_DAY(SYSDATE ) + 1)'
    每季度最后一天晚上11点    'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
    每周六日的早上六点十分    'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

    ————————————————
    版权声明:本文为CSDN博主「A-eye」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Aeyewp/article/details/70228010

    展开全文
  • ORACLE定时任务时间间隔设置

    千次阅读 2016-05-07 02:20:28
    --举例当前时间是:2012-08-06 下午 04:39:00 SELECT TRUNC(SYSDATE,'mm') FROM dual --返回2012-8-1当月的第一天 SELECT TRUNC(SYSDATE,'yy') FROM dual --返回2012-1-1当年第一天 SELECT TRUNC...
     
    

    1)、按分钟执行

    每分钟执行

    TRUNC(SYSDATE,'mi') + 1/(24*60)

    每五分钟执行

    TRUNC(SYSDATE,'mi') + 5/(24*60)

     

    2)、按小时执行

    每小时执行

    TRUNC(SYSDATE,'mi') + 1/24

    每隔五小时执行

    TRUNC(SYSDATE,'mi') + 5/24

     

    3)、按天执行

    每天的凌晨2点执行

    TRUNC(SYSDATE) + 1 +2/(24)

    例如:每隔5天的凌晨2点执行

    TRUNC(SYSDATE) + 5 +2/(24)

     

    4)、按周执行

    每周一凌晨2点执行

    TRUNC(NEXT_DAY(SYSDATE,2))+2/24 --星期一(一周的第二天)

    每周六凌晨2点执行

    TRUNC(NEXT_DAY(SYSDATE,7))+2/24 --星期六(一周的第七天)

     

    5)、 按月执行

    每月1日凌晨2点执行

    TRUNC(LAST_DAY(SYSDATE))+1+2/24

    每月5日上午10点执行

    TRUNC(LAST_DAY(SYSDATE))+5+10/24

     

    6)、 按季度执行

    每季度的第一天凌晨2点执行

    TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24

     

    7)、 每半年定时执行

    每年7月1日和1月1日凌晨2点

    ADD_MONTHS(TRUNC(SYSDATE,'yyyy'),6)+2/24

    --select TRUNC(SYSDATE,'yyyy') from dual;

    --select ADD_MONTHS(TRUNC(SYSDATE,'yyyy'),6) from dual;

     

    8)、 每年定时执行

    每年1月1日凌晨2点执行

    ADD_MONTHS(TRUNC(SYSDATE,'yyyy'),12)+2/24

     

    补充:

    1、

    NEXT_DAY(d,number)

    --时间点d开始,下一个星期几的日期 

    --星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7

    2、

    ADD_MONTHS(d,n)

    --返回时间点d再加上n个月

    3、

    LAST_DAY(d)

    --时间点d当月份最后一天

    4、

    TRUNC(d[,fmt])

    --对日期作截取

    --举例当前时间是:2012-08-06  下午 04:39:00

    SELECT TRUNC(SYSDATE,'mm') FROM dual

    --返回2012-8-1当月的第一天

    SELECT TRUNC(SYSDATE,'yy') FROM dual

    --返回2012-1-1当年第一天

    SELECT TRUNC(SYSDATE,'dd') FROM dual

    --返回2012-8-6当天

    SELECT TRUNC(SYSDATE,'day') FROM dual

    --返回2012-8-5当周第一天

    SELECT TRUNC(SYSDATE) FROM dual

    --返回2012-8-6不填参数就默认是当天

    SELECT TRUNC(SYSDATE,'hh') FROM dual

    --返回2012-8-6下午04:00:00当前小时

    SELECT TRUNC(SYSDATE,'mi') FROM dual

    --返回2012-8-6下午04:39:00当前分钟

    展开全文
  • 2、定时任务由操作系统提供的支持,在操作系统中设置定时任务,由操作系统定期执行脚本 3、补充。压缩包脚本有点问题,不能删除旧的备份文件。需要自动删除历史备份文件请用最新脚本: @echo off @echo ============...
  • Oracle 定时任务时间写法

    万次阅读 2013-07-24 14:53:11
    Oracle定时器(Job)各时间段写法汇总 原作者:博客园一条辉 原文:链接  对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能...
     
    
    原作者: 博客园一条辉 原文: 链接 

    对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:

    在总结之前,先把Job的参数一一说明一下:

    job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;

    what参数是将被执行的PL/SQL代码块;

    next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;

    interval参数何时这个工作将被重执行。

    其中Interval这个值是决定Job何时,被重新执行的关键。

    例如:有存储过程 p_dosomethings,需要被不同的时间间隔执行。

     1 declare   
     2   jobno number;   
     3 begin   
     4   dbms_job.submit(
     5     jobno,
     6      ' p_dosomething; ' ,   -- what
     7     to_date( ' 20090101020000 ' , ' yyyy-mm-dd hh24:mi:ss ' ), -- next_date,可以不填
     8      ' Interval时间字符串 ' -- interval,关键设置
     9   );   
    10   commit;   
    11 end; 
    12


    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、 每半年定时执行

    例如:每年71日和11日凌晨2

    Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24

    7、 每年定时执行

    例如:每年11日凌晨2点执行

    Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

    当然上面罗列不可能照顾到方方面面,但是稍微变化一下,就能衍生出无数的例子,聪明的你一定会的吧,我这里就不多罗嗦了。

    展开全文
  • 第二种调度任务需求相对于第一种就需要更复杂的时间间隔(interval)表达式,表7是一些要求在特定的时间运行任务的interval设置例子。 表 2. 定时到特定日期或时间任务例子 描述 INTERVAL参数值 每天午夜12点...

    最后那一项可以参考如下:
    每天午夜12点 'TRUNC(SYSDATE + 1)'
    每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
    每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
    每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
    每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
    每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6*60+10)/(24*60)'

    其中li_jobno是它的ID,可以通过这个ID停掉这个任务,最后想说的是不要执行多次,你可以在里面管理起来,发现已经运行了就不SUBMIT

    select TRUNC(SYSDATE,'MONTH'),last_day(sysdate) from dual

    --每个月的第一天和最后一天

    每天运行一次 'SYSDATE + 1'
    每小时运行一次 'SYSDATE + 1/24'
    每10分钟运行一次 'SYSDATE + 10/(60*24)'
    每30秒运行一次 'SYSDATE + 30/(60*24*60)'
    每隔一星期运行一次 'SYSDATE + 7'
    不再运行该任务并删除它 NULL
    每年1月1号零时    trunc(last_day(to_date(extract(year from sysdate)||'12'||'01','yyyy-mm-dd'))+1

     

    -------------------

       Job的参数:

        一:时间间隔执行(每分钟,每天,每周,:每月,每季度,每半年,每年)

       interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,

     就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。

        1:每分钟执行

        Interval => TRUNC(sysdate,'mi') + 1/ (24*60)   或 Interval => sysdate+1/1440

        2:每天定时执行

        例如:每天的凌晨1点执行

        Interval => TRUNC(sysdate) + 1 +1/ (24)

        3:每周定时执行

        例如:每周一凌晨1点执行

        Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

        4:每月定时执行

        例如:每月1日凌晨1点执行

        Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

        5:每季度定时执行

        例如每季度的第一天凌晨1点执行

        Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

        6:每半年定时执行

        例如:每年7月1日和1月1日凌晨1点

        Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

        7:每年定时执行

        例如:每年1月1日凌晨1点执行

        Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

    二:

    在一个特定的时间间隔后,重复运行该任务。
    在特定的日期和时间运行任务。
    任务成功完成后,下一次执行应该在一个特定的时间间隔之后。
    第一种调度任务需求的日期算法比较简单,即'SYSDATE+n',这里n是一个以天为单位的时间间隔。表1给出了一些这种时间间隔设置的例子。

    表1 一些简单的interval参数设置例子

    描述 Interval参数值
    每天运行一次 'SYSDATE + 1'
    每小时运行一次 'SYSDATE + 1/24'
    每10分钟运行一次 'SYSDATE + 10/(60*24)'
    每30秒运行一次 'SYSDATE + 30/(60*24*60)'
    每隔一星期运行一次 'SYSDATE + 7'
    不再运行该任务并删除它 NULL

    表1 所示的任务间隔表达式不能保证任务的下一次运行时间在一个特定的日期或者时间,仅仅能够指定一个任务两次运行之间的时间间隔。例如,如果一个任务第一次运行是在凌晨12点,interval指定为'SYSDATE + 1',则该任务将被计划在第二天的凌晨12点执行。但是,如果某用户在下午4点手工(DBMS_JOB.RUN)执行了该任务,那么该任务将被重新定时到第二天的下午4点。还有一个可能的原因是如果数据库关闭或者说任务队列非常的忙以至于任务不能在计划的那个时间点准时执行。在这种情况下,任务将试图尽快运行,也就是说只要数据库一打开或者是任务队列不忙就开始执行,但是这时,运行时间已经从原来的提交时间漂移到了后来真正的运行时间。这种下一次运行时间的不断“漂移”是采用简单时间间隔表达式的典型特征。

    第二种调度任务需求相对于第一种就需要更复杂的时间间隔(interval)表达式,表7是一些要求在特定的时间运行任务的interval设置例子。

    表 2. 定时到特定日期或时间的任务例子

    描述 INTERVAL参数值
    每天午夜12点 'TRUNC(SYSDATE + 1)'
    每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
    每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
    每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
    每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
    每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

    第三种调度任务需求无论通过怎样设置interval日期表达式也不能满足要求。这时因为一个任务的下一次运行时间在任务开始时才计算,而在此时是不知道任务在何时结束的。遇到这种情况怎么办呢?当然办法肯定是有的,我们可以通过为任务队列写过程的办法来实现。这里我只是简单介绍以下,可以在前一个任务队列执行的过程中,取得任务完成的系统时间,然后加上指定的时间间隔,拿这个时间来控制下一个要执行的任务。这里有一个前提条件,就是目前运行的任务本身必须要严格遵守自己的时间计划。

    将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以DBA的身份将权利授予scott用户:
    svrmgrl> grant execute on dbms_job to scott;
    4.将要执行的任务写成存储过程或其他的数据库可执行的pl/sql程序段
    例如,我们已经建立了一个存储过程,其名称为my_job,在sql/plus中以scott用户身份登录,执行如下命令:
    sql> variable n number;
    sql> begin
    dbms_job.submit(:n‘my_job;’,sysdate,
    ‘sysdate+1/360’);
    commit;
    end;
    /
    系统提示执行成功。
    Sql> print :n;
    系统打印此任务的编号,例如结果为300。
    如上,我们创建了一个每隔4分钟执行一次的任务号为300的任务。可以通过Oracle提供的数据字典user_jobs察看该任务的执行情况:
    sql> select job,next_date,next_sec,failures,broken from user_jobs;
    执行结果如下:
    job next_date next_sec failures broken
    300 2000/10/10 11:45:15 0 N
    这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来重新执行它。

    除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。


     总结:

    1、 每分钟执行

    Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)

    2、 每天定时执行

    例如:每天的凌晨2点执行

    Interval => TRUNC(sysdate) + 1 +2 / (24)

    3、 每周定时执行

    例如:每周一凌晨2点执行

    Interval => TRUNC(next_day(sysdate,'星期一'))+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'),6)+2/24

    what            参数是将被执行的PL/SQL代码块;

    next_date      参数指识何时将运行这个工作。写Job的时候可以不指定该值;

    interval           参数何时这个工作将被重执行。

    转载于:https://www.cnblogs.com/xueershewang/p/7355286.html

    展开全文
  • https://blog.csdn.net/wangjiajiachengcheng/article/details/51335871
  • job的界面配置管理工具,为你更方便快捷定制定时任务,提高维护者的时间成本,更加安全实用
  • 1.新建一个定时任务,需要注意的是创建之时会自动启动 declare jobID number; begin dbms_job.submit( job=> jobID, /*自动生成的ID,也可以设置自定义ID,不推荐使用自定义可能会重复*/ what => 'INTO_...
  • Oracle job 定时器的执行时间间隔也是定时器job 的关键设置,在这一设置上,开始还没掌握,总是不知道怎么写,现总结如下,其实主要是使用了TRUNC、NEXT_DAY 、ADD_MONTHS 、LAST_DAY 几个函数的配合使用。...
  • Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER 来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更强大的功能和更灵活的机制 管理,但DBMS_JOB 包的使用相对比较简单,也基本...
  • 创建Oracle定时任务

    千次阅读 2019-05-24 10:08:42
    PLSQL创建Oracle定时任务 用语句创建 1、创建任务执行的存储过程,如名称为testJob,向测试表中插入数据,如文章开头,此处省略。 2、创建一个 定时任务 job declare job number; BEGIN DBMS_JOB.SUBMIT( ...
  • Oracle Job定时任务

    2014-04-28 14:22:17
    Oracle Job定时任务
  • oracle定时任务失效

    2019-10-17 15:15:06
    发现系统数据没有更新,查看oracle定时任务,估计没有执行。 发现next_date变成了4000/1/1 ,broken被选中。 select * from user_jobs发现该任务失败次数达16次。 查得如下原因: 当任务运行失败时,SNP过程在1分钟...
  • oracle定时任务配置

    2019-07-11 16:42:00
    定时任务配置(给存过过程配置定时任务) (1)Schedules 下面配置了很多的作业计划,截图中所示,都不太规范。 如下图所示的作业计划就比较归档,做到了见名知意。如:S_D_00 每天凌晨执行 我们先在...
  • Oracle定时任务DBMS_JOB

    千次阅读 2020-11-20 15:17:14
    通俗的来讲,开发中定制定时执行的任务有两种方式,代码级别和数据库级别,代码级别的不多阐述,本文主要介绍如何使用Oracle数据库的job来定制一个简单的定时执行任务的步骤。 需求 每间隔1秒钟删除表 batchs_lock...
  • oracle 定时任务

    万次阅读 2018-09-29 09:52:24
    Oracle创建定时任务,下面以创建一个每天凌晨3点钟执行的定时任务为实例。 1、创建定时任务 begin  sys.dbms_job.submit(job => 23,  what => 'PRO_JOB;',  next_date => to_date('10-10-...
  • 1、创建任务执行的存储过程UpdateSettlementJob create or replace procedure UpdateSettlementJob is begin update cmp_settlement set pk_tradetype = 'H194', pk_tradetypeid = '1001AA10000000008UOZ' ...
  • ORACLE定时任务不能自动执行的检查修复步聚。 oracle定时任务有时不能自动执行,据网上说可能是某个版本的BUG,一般通过这些步骤就能恢复了。 这是本人结合网络上的知识,解决实际问题时记录的。
  • oracle定时任务

    千次阅读 2017-11-07 19:26:35
    一、dbms_job涉及到的知识点 1、创建job: ? 1 2 3 4 5 6 variable jobno number; dbms_job.submit(:jobno, —-job号 ... next_date, —-下次执行时间  'int
  • 1. 查看oracle中的定时任务 select * from all_jobs; select * from dba_jobs; 2. 停止定时任务 begin dbms_job.broken(jobid,true); end;
  • 在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法: 1、创建任务执行的存储过程,如名称为YxtestJob,向测试表中插入数据 create or replace ...
  • 1、首先创建一张表 该表用来执行插入数据。 create table getSysDate(test date); 2、创建存储过程以插入数据。 create or replace procedure insertSysDate as ...3、创建job设置定时 declare jo...
  • ORACLE定时任务没有执行原因

    万次阅读 2018-04-17 08:49:08
    ORACLE定时任务没有执行原因这个问题研究了挺长时间,从最开始写ORACLE存储过程 create or replace procedure ...写定时任务 dbms_job.submit(...)执行定时任务 dbms_job.run(job num)如果以上三部分都没有报错,可...
  • 创建ORACLE定时任务

    2020-05-09 15:55:52
    2.创建定时任务 begin dbms_job.submit(job=>job111,what=>'MH_POLICEMAN_GPS_INFO_PROC;',next_date=>to_date('20191120 21:30:00','yyyyMMdd hh24:mi:ss'),interval=>'sysdate+1+30/(24*60)',no_...
  • ORACLE 定时任务没有执行 解决

    千次阅读 2019-08-13 14:49:35
    查询 selectvaluefromv$parameterwherenamelike'%job_queue_processes%' 看看值是多少?... 指定可以为执行DBMS_JOB作业和Oracle Scheduler(DBMS_SCHEDULER)作业创建的每个实例的最大作业从站...
  • ORACLE定时执行Job任务

    万次阅读 2018-07-23 12:09:44
    因为是统计周月数据,便想到了数据库定时Job任务创建。 在百度上,找到了一篇好文章,跟大家分享:http://langgufu.iteye.com/blog/1179235 另一篇文章是关于ORACLE时间间隔书写:...
  • oracle创建定时任务

    2019-08-06 11:42:52
    3、设置定时任务 (1)、在what值中填写待执行的存储过程,可以多个,用逗号(,)隔开。 (2)、在间隔中填写执行时间策略。具体如下: 附:定时执行时间间隔说明  间隔/interval是指上一次执行...
  • 数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码。 以下两个sql语句都可以查到: select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; select * from v$nls_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,983
精华内容 7,593
关键字:

oracle定时任务时间设置