`
Virgo_S
  • 浏览: 1150986 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE JOB间隔时间参考

阅读更多
假设你的存储过程名为PROC_RAIN_JM
再写一个存储过程名为PROC_JOB_RAIN_JM
内容是:
Create Or Replace Procedure PROC_JOB_RAIN_JM
Is
li_jobno         Number;

Begin
DBMS_JOB.SUBMIT(li_jobno,'PROC_RAIN_JM;',SYSDATE,'TRUNC(SYSDATE + 1)'); 
End;

提交job语法:
begin
sys.dbms_job.submit(job => :job,
                      what => 'P_CLEAR_PACKBAL;',
                      next_date => to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+ 1/360');
commit;
end;

-------------------------
创建JOB
variable jobno number;
begin
dbms_job.submit(:jobno, 'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);
commit;

运行JOB
begin
    dbms_job.run(:job1);
end;

删除JOB
begin
    dbms_job.remove(:job1);
end;

DBA_JOBS
=========================================
字段(列)          类型                 描述
JOB                NUMBER          任务的唯一标示号
LOG_USER           VARCHAR2(30)    提交任务的用户
PRIV_USER          VARCHAR2(30)    赋予任务权限的用户
SCHEMA_USER        VARCHAR2(30)    对任务作语法分析的用户模式
LAST_DATE          DATE            最后一次成功运行任务的时间
LAST_SEC           VARCHAR2(8)     如HH24:MM:SS格式的last_date日期的小时,分钟和秒
THIS_DATE     DATE            正在运行任务的开始时间,如果没有运行任务则为null
THIS_SEC     VARCHAR2(8)     如HH24:MM:SS格式的this_date日期的小时,分钟和秒
NEXT_DATE          DATE            下一次定时运行任务的时间
NEXT_SEC           VARCHAR2(8)     如HH24:MM:SS格式的next_date日期的小时,分钟和秒
TOTAL_TIME         NUMBER          该任务运行所需要的总时间,单位为秒
BROKEN             VARCHAR2(1)     标志参数,Y标示任务中断,以后不会运行
INTERVAL           VARCHAR2(200)   用于计算下一运行时间的表达式
FAILURES    NUMBER     任务运行连续没有成功的次数
WHAT               VARCHAR2(2000) 执行任务的PL/SQL块
CURRENT_SESSION_LABEL RAW          MLSLABEL 该任务的信任Oracle会话符
CLEARANCE_HI      RAW MLSLABEL     该任务可信任的Oracle最大间隙
CLEARANCE_LO      RAW              MLSLABEL 该任务可信任的Oracle最小间隙
NLS_ENV           VARCHAR2(2000)   任务运行的NLS会话设置
MISC_ENV          RAW(32)          任务运行的其他一些会话参数
--------------------------
描述                    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)'
--------------------------
1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
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

TRUNC()函数分两种  
trunc实际上是truncate函数,字面意思是截断,截尾。
1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。截尾后返回最近日期
其具体的语法格式如下:
TRUNC(date[,fmt])
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
select   trunc(sysdate,'mm')   from   dual=2009-1-1
  
2.TRUNC(for number)
TRUNC函数的功能是将数字进行截断,对所截取的结果并不四舍五入。  
其具体的语法格式如下
TRUNC(number[,decimals])
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
下面是该函数的使用情况:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
  注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

分享到:
评论

相关推荐

    oracle的job定时

    Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...

    ORACLE JOB

    根据提供的信息,我们可以详细探讨关于 Oracle Job 的一系列关键知识点,包括如何在 Oracle 数据库中创建、管理和维护定时任务(Jobs)。 ### Oracle Job 概念 Oracle Job 是一种数据库特性,允许用户设置定时任务...

    oracle创建job实例[参考].pdf

    Oracle数据库中的作业(Job)是实现定时任务的重要机制,它允许管理员或开发人员安排特定的PL/SQL块在预设的时间点或周期性地执行。在Oracle中创建和管理作业主要涉及以下几个步骤和知识点: 1. **创建作业**: ...

    oracle系统包

    - 修改间隔时间: `dbms_job.interval(jobno, interval);` 4. **启动与停止Job** - 启动Job: `dbms_job.run(jobno);` - 停止Job: `dbms_job.broken(jobno, broken, nextdate);` 其中`broken`为布尔值。 5. **...

    在Oracle中实现后台自动执行的定时操作

    在Oracle数据库中,JOB队列是一种用于调度后台任务的机制,允许用户定义一系列的作业,这些作业可以在指定的时间点或者周期性地执行。这一功能由数据库的系统守护进程SNP(System Notification Process)负责管理,...

    oracle 定时任务,使用存储过程更新数据

    Oracle数据库系统提供了强大的定时任务管理功能,这在企业级应用中极为重要,因为它们能够按照预设的时间间隔执行特定的任务,比如数据更新、备份、报表生成等。在本主题中,我们将深入探讨如何利用Oracle的存储过程...

    Oracle 10g的任务调度.pdf

    而调度表则定义了任务的执行计划,包括任务的开始时间、结束时间、间隔等参数。例如,对于一次性任务,调度表只包含一个起始时间;对于重复性任务,可以设置一个起始时间和重复执行的计划。 使用DBMS_SCHEDULER包的...

    Oracle查询优化技术在标准化服务平台中的应用.pdf

    Job是Oracle数据库中的一种计划任务机制,可以按预设的时间间隔执行指定的SQL脚本或PL/SQL过程。在标准化服务平台中,利用Job定时更新标准状态,确保了数据的准确性和一致性,减少了手动干预的工作量,提高了工作...

    Quartz Job 中文文档 CHM格式

    该CHM格式的文档是Quartz Job Scheduling Framework的中文版本,版本号为V0.9.5,为用户提供了详尽的指南和参考。 在Quartz Job中,核心概念包括Job、Trigger、Scheduler和Calendar。Job代表一个具体的工作任务,你...

    ORACLE物化视图的技术应用.pdf

    在这个例子中,`MV_EMPLOYEE`是物化视图的名称,`REFRESH FAST`表示使用快速刷新,`START WITH`和`NEXT`定义了刷新的时间和间隔。 物化视图日志(Materialized View Log)的创建也很关键,它允许数据库跟踪对基础表...

    Linux 指令篇日期时间排程

    - now + 时间间隔(如 now + 2 days) ### 总结 通过本文的介绍,我们可以了解到 `touch` 和 `at` 这两个命令在 Linux 系统管理中的重要性和灵活性。`touch` 有助于维护文件的时间戳一致性,而 `at` 则为自动化...

    Quartz持久化参考资料大全

    CronTrigger允许按照预定义的时间模式(如cron表达式)执行任务,而SimpleTrigger则支持按固定间隔重复执行任务。 在实际应用中,你可能还需要考虑如何处理并发执行的任务,以及异常处理策略。例如,可以设置`...

    Quartz集群demo

    包括设置`org.quartz.scheduler.instanceId`为`AUTO`以自动获取唯一ID,配置`org.quartz.jobStore.clusterCheckinInterval`来设定节点心跳检查的间隔时间,以及设置数据库连接信息以共享job存储。 4. **数据库支持*...

    基于PL_SQL语言实现数据验证平台中的事务处理.pdf

    例如,通过CREATE_JOB方法定义任务执行的代码和时间间隔。 程序包是PL/SQL中组织代码的有效方式,分为接口和实现两部分。INTF_MAIN程序包包含了数据验证平台的所有业务功能,而INTF_LOGS和INTF_EMAIN则分别用于日志...

Global site tag (gtag.js) - Google Analytics