假设你的存储过程名为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数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...
根据提供的信息,我们可以详细探讨关于 Oracle Job 的一系列关键知识点,包括如何在 Oracle 数据库中创建、管理和维护定时任务(Jobs)。 ### Oracle Job 概念 Oracle Job 是一种数据库特性,允许用户设置定时任务...
Oracle数据库中的作业(Job)是实现定时任务的重要机制,它允许管理员或开发人员安排特定的PL/SQL块在预设的时间点或周期性地执行。在Oracle中创建和管理作业主要涉及以下几个步骤和知识点: 1. **创建作业**: ...
- 修改间隔时间: `dbms_job.interval(jobno, interval);` 4. **启动与停止Job** - 启动Job: `dbms_job.run(jobno);` - 停止Job: `dbms_job.broken(jobno, broken, nextdate);` 其中`broken`为布尔值。 5. **...
在Oracle数据库中,JOB队列是一种用于调度后台任务的机制,允许用户定义一系列的作业,这些作业可以在指定的时间点或者周期性地执行。这一功能由数据库的系统守护进程SNP(System Notification Process)负责管理,...
Oracle数据库系统提供了强大的定时任务管理功能,这在企业级应用中极为重要,因为它们能够按照预设的时间间隔执行特定的任务,比如数据更新、备份、报表生成等。在本主题中,我们将深入探讨如何利用Oracle的存储过程...
而调度表则定义了任务的执行计划,包括任务的开始时间、结束时间、间隔等参数。例如,对于一次性任务,调度表只包含一个起始时间;对于重复性任务,可以设置一个起始时间和重复执行的计划。 使用DBMS_SCHEDULER包的...
Job是Oracle数据库中的一种计划任务机制,可以按预设的时间间隔执行指定的SQL脚本或PL/SQL过程。在标准化服务平台中,利用Job定时更新标准状态,确保了数据的准确性和一致性,减少了手动干预的工作量,提高了工作...
该CHM格式的文档是Quartz Job Scheduling Framework的中文版本,版本号为V0.9.5,为用户提供了详尽的指南和参考。 在Quartz Job中,核心概念包括Job、Trigger、Scheduler和Calendar。Job代表一个具体的工作任务,你...
在这个例子中,`MV_EMPLOYEE`是物化视图的名称,`REFRESH FAST`表示使用快速刷新,`START WITH`和`NEXT`定义了刷新的时间和间隔。 物化视图日志(Materialized View Log)的创建也很关键,它允许数据库跟踪对基础表...
- now + 时间间隔(如 now + 2 days) ### 总结 通过本文的介绍,我们可以了解到 `touch` 和 `at` 这两个命令在 Linux 系统管理中的重要性和灵活性。`touch` 有助于维护文件的时间戳一致性,而 `at` 则为自动化...
CronTrigger允许按照预定义的时间模式(如cron表达式)执行任务,而SimpleTrigger则支持按固定间隔重复执行任务。 在实际应用中,你可能还需要考虑如何处理并发执行的任务,以及异常处理策略。例如,可以设置`...
包括设置`org.quartz.scheduler.instanceId`为`AUTO`以自动获取唯一ID,配置`org.quartz.jobStore.clusterCheckinInterval`来设定节点心跳检查的间隔时间,以及设置数据库连接信息以共享job存储。 4. **数据库支持*...
例如,通过CREATE_JOB方法定义任务执行的代码和时间间隔。 程序包是PL/SQL中组织代码的有效方式,分为接口和实现两部分。INTF_MAIN程序包包含了数据验证平台的所有业务功能,而INTF_LOGS和INTF_EMAIN则分别用于日志...