`

ORACLE DBMS_JOB包参数之--interval

 
阅读更多
Internal参数是一个表示Oracle合法日期表达式的字符串。
这个日期字符串的值在每次任务被执行时算出,算出的日期表达式有两种可能,要么是未来的一个时间要么就是null。强调一点:next_date是在一个任务开始时算出的,而不是在任务成功完成时算出的。

当任务成功完成时,系统通过更新任务队列目录表将前面算出的next_date值置为下一次任务要运行的时间。当由interval表达式算出next_date是null时,任务自动从任务队列中移出,不会再继续执行。因此,如果传递一个null值给interval参数,则该任务仅仅执行一次。

通过给interval参数赋各种不同的值,可以设计出复杂运行时间计划的任务。

一个任务的定时执行,有三种定时要求:
1.在一个特定的时间间隔后,重复运行该任务。
2.在特定的日期和时间运行任务。
3.任务成功完成后,下一次执行应该在一个特定的时间间隔之后。

网上一些时间设置的参考:
      每天午夜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

  每天运行一次 '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)

参考:http://www.cnblogs.com/hoojo/p/oracle_procedure_job_interval.html
http://docstore.mik.ua/orelly/oracle/bipack/ch13_03.htm
分享到:
评论

相关推荐

    DBMS_JOB包创建ORACLE定时任务

    ### DBMS_JOB包创建Oracle定时任务详解 在Oracle数据库中,`DBMS_JOB`包提供了一种机制,用于创建和管理后台作业(Job),这些作业可以在特定的时间或按一定的时间间隔执行。这对于需要定期执行的任务非常有用,...

    DBMS_JOB使用方法

    `DBMS_JOB` 是 Oracle 数据库提供的用于调度任务的包,可以实现对定时任务的管理,包括任务的创建、修改、删除及执行等操作。该包提供了多种过程和函数,允许用户以灵活的方式控制定时任务的执行。 #### 二、主要...

    oracle数据库定时任务dbms_job的用法详解

    Oracle数据库中的DBMS_JOB包是用于创建和管理定时任务的重要工具,它允许用户安排数据库执行特定的PL/SQL过程或存储过程。这个包提供了一系列的子程序,用于创建、修改、启动、停止以及监控数据库作业。下面将详细...

    DBMS_JOB定义

    在Oracle数据库环境中,`DBMS_JOB`是用于管理后台任务调度的强大工具之一。通过`DBMS_JOB`包,用户可以轻松地安排执行特定的PL/SQL块或存储过程,并且可以设置这些任务按照预定的时间表运行。 #### 1. 基本概念 `...

    ORACLE_JOB_.rar_oracle

    Oracle Jobs 是一种数据库级别的定时任务,通过DBMS_JOB或DBMS_SCHEDULER包来创建和管理。这些包提供了丰富的功能,如周期性执行、延迟启动、依赖关系设定等,使得数据库维护和业务流程自动化变得更加方便。 2. **...

    ORACLE创建JOB脚本

    首先,我们需要理解Oracle中的DBMS_JOB包,这是Oracle提供的一组过程,用于创建、修改和管理JOB。DBMS_JOB包包含以下主要过程: 1. DBMS_JOB.BEGIN_JOB:这个过程用于创建一个新的JOB,它会返回一个job编号,这个...

    在将DBMS_JOB迁移到DBMS_SCHEDULER时,将Interval值转换为日历日历

    在Oracle数据库管理中,DBMS_JOB和DBMS_SCHEDULER是两个重要的后台进程管理包,用于计划和执行数据库任务。DBMS_JOB是较早的版本,而DBMS_SCHEDULER是其现代替代品,提供了更丰富的功能和灵活性。在从DBMS_JOB迁移到...

    DB_job.zip_job_oracle

    这些脚本可能包括上述提到的各种`DBMS_JOB`包的函数和过程,以及自定义的PL/SQL代码或存储过程调用。 通过使用DBMS_JOB,数据库管理员可以有效地自动化日常维护任务,如数据备份、统计信息更新、清理旧记录等,从而...

    oracle_job的创建更改及删除

    该过程需要四个参数:`job`、`what`、`next_date` 和 `interval`。其中,`job` 是作业的编号,`what` 是执行的任务的名称及其输入参数,`next_date` 是任务执行的时间,`interval` 是任务执行的时间间隔。 例如,...

    oracle job 例子

    首先,Oracle Job 通过 DBMS_JOB 包或 DBMS_SCHEDULER 包来创建和管理。DBMS_JOB 是早期版本 Oracle 提供的接口,而 DBMS_SCHEDULER 是从 Oracle 10g 开始引入的,功能更加强大且灵活。DBMS_SCHEDULER 包含了更多的...

    oracle job

    Oracle Job是Oracle的DBMS_SCHEDULER或之前版本中的DBMS_JOB包的一部分,它允许数据库管理员规划、监控和管理长时间运行的任务。 Oracle Job的创建通常涉及以下步骤: 1. **创建Job**:使用DBMS_SCHEDULER或DBMS_...

    Oracle JOB 用法小结

    Oracle的`dbms_job`包提供了多种用于管理JOB的方法: 1. `Broken()`过程用于更新已提交作业的状态,通常用于将一个破碎的作业标记为未破碎。它接受三个参数:作业号(job)、是否破碎(broken)以及下次运行时间...

    oracle-Job-管理.docx

    在Oracle 9i版本中,我们可以使用SQL命令或者DBMS_SCHEDULER包来创建、修改和管理Jobs。 实验中,首先创建了一个名为DATE_LOG的表,其主键是CREATE_DATE字段。接着创建了一个存储过程CREATE_DATE_LOG_ROW,该过程的...

    ORACLE_JOB_.docx

    `DBMS_JOB` 是一个系统包,提供了一系列的子程序,允许用户创建、修改、删除和管理作业(Jobs),这些作业可以在指定的时间点或按照预定的间隔自动执行 PL/SQL 代码块。 首先,`DBMS_JOB` 包的权限管理至关重要。在...

    oracle_job.doc

    - **修改 Job**:通过 `DBMS_JOB.CHANGE` 更新 Job 的参数,如间隔时间或下次运行日期。 4. **示例**: - 创建存储过程 `pro_name`。 - 使用 `DBMS_JOB.SUBMIT` 创建 Job,例如 `jobdxm`,在特定时间点运行存储...

    oracle定时任务.txt

    在Oracle数据库中,`DBMS_JOB`包提供了一种简单的方式来安排周期性或一次性的工作。以下将详细介绍如何使用`DBMS_JOB`来创建、运行和管理定时任务。 ##### 创建定时任务 ```sql -- 创建一个用于执行的任务过程 ...

    oracle job 用法

    - **DBMS_JOB.INTERVAL**:专门用于修改Job的执行间隔。 - **DBMS_JOB.ISUBMIT**:类似于`SUBMIT`,但提供了额外的`no_parse`选项。 - **DBMS_JOB.NEXT_DATE**:用于修改Job的下次执行时间。 - **DBMS_JOB.REMOVE**...

    JOB排程操作&實例.zip

    Oracle数据库在日常管理和运维中,经常需要执行定时任务,这时DBMS_JOB包就显得尤为重要。DBMS_JOB是Oracle提供的一种内置存储过程,用于创建、修改和管理后台作业(jobs),这些作业可以在预设的时间点自动执行指定...

    oracle系统包

    ### Oracle系统包——dbms_job用法详解 Oracle系统包中的`dbms_job`是一个非常重要的功能组件,它主要用于在Oracle数据库中安排和管理后台作业(job),使得数据库能够定期执行特定的任务。这对于自动化数据库管理...

Global site tag (gtag.js) - Google Analytics