热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

OracleJOB设置

在一个特定的时间间隔后,重复运行该任务。在特定的日期和时间运行任务。任务成功完成后,下一次执行应该在一个特定的时间间隔

在一个特定的时间间隔后,重复运行该任务。 在特定的日期和时间运行任务。 任务成功完成后,下一次执行应该在一个特定的时间间隔

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

    推荐阅读
    • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
    • SonarQube配置与使用指南
      本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
    • 使用Docker部署Gitea自托管Git服务
      Gitea是由Gogs社区分叉而来的开源自托管Git服务,旨在提供一个更加灵活和易于维护的解决方案。本文将详细介绍如何利用Docker容器技术快速部署Gitea。 ... [详细]
    • Oracle 数据库提供了自动化文件管理(OFM)的功能,允许用户通过设置特定参数来简化数据文件和日志文件的创建过程。当配置了 db_create_file_dest 和 db_create_online_log_dest_n 参数后,系统能够自动处理文件的创建与删除。 ... [详细]
    • 本文档整理了公司内部常用的网站链接和重要资源路径,包括部门周报、内控报销系统、邮件服务等,同时提供了相关数据库的登录信息。 ... [详细]
    • 深入理解Hibernate延迟加载机制
      本文探讨了Hibernate框架中的延迟加载(懒加载)特性,分析其对程序性能的影响及实现原理,同时提供了具体的代码示例来说明如何配置和使用延迟加载。 ... [详细]
    • 1、服务器配置信息① 主服务器IP:192.168.1.2② 从服务器IP:192.168.1.3③ 操作系统:主服务器:Win8,从服务器࿱ ... [详细]
    • 睿智汇海教育致力于培养杰出的IT专业人才,确保学员在就业市场上具备竞争力,助其实现职业成功。我们提供的C#/.Net/Asp.Net培训课程,旨在通过系统的教学和丰富的实践机会,帮助学员掌握最新的技术知识。 ... [详细]
    • 统一幻灯片标题:使用母版功能的技巧
      本文详细介绍了如何通过PowerPoint中的幻灯片母版功能,实现所有幻灯片标题的一致性设置。同时,提供了其他办公软件和编程相关的实用技巧。 ... [详细]
    • MySQL 5.7 绿色版安装及 my.ini 配置详解
      本文主要针对最近因系统重装导致的MySQL配置问题,详细介绍了MySQL 5.7.24绿色解压版的安装步骤及my.ini配置文件的关键设置,帮助用户顺利完成数据库的安装与配置。 ... [详细]
    • 本文介绍如何利用JavaScript在页面加载时为ASP.NET的DropDownList控件设置特定的选项值。 ... [详细]
    • MyBatis入门指南
      本文详细介绍了MyBatis的基础知识,包括如何整合日志框架(如log4j和logback),使用外部JDBC文件,getMapper()方法的应用,以及别名设置等技巧。 ... [详细]
    • 在使用 SQL 语句从数据库中提取数据并尝试将其转换为其他数据类型时,可能会遇到 'java.math.BigDecimal cannot be cast to java.lang.Integer' 错误。本文将详细解释这一错误的原因,并提供有效的解决方案。 ... [详细]
    • 本文探讨了如何利用脚本文件高效管理Oracle数据库,包括脚本文件的创建、编辑及运行方法,旨在为数据库管理人员提供实用指导。 ... [详细]
    • 使用H5在前端生成Excel文件的方法
      本文介绍了一种利用HTML5和JavaScript库在浏览器端直接生成并下载Excel文件的技术方案。通过引入alasql.js和xlsx.core.min.js两个库,可以轻松实现数据导出功能。 ... [详细]
    author-avatar
    mobiledu2502860487
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有