oracle创建定时器详解|interval属性
定时任务首先先创建定时任务中的存储过程
create or replace procedure pro_jggl as --创建存储过程
begin --begin和end中间的就是pl/sql
delete yl_jggl where jjgbh = 'JGBM171002000407'; --sql 定时任务运行时触发的sql
commit; --提交sql
end;
这样就新建了个名为 pro_jggl的定时任务存储过程
然后在创建定时任务
declare jobno number; --系统会自动分配一个jobno的定时任务号
begin
dbms_job.submit(job=> jobno, --是把job赋值为jobno,job名称
what=>'pro_jggl;', --what赋值 这里是job绑定的存储过程 ****注意:这里引号中的存储过程名后面要加上分号。
next_date=>sysdate, --next_date赋值 这里是下次定时任务运行时的时间 sysdate是系统时间 也就是立即执行
interval=>'sysdate+1/(24*60)' --interval 赋值 这里是定时任务运行时每次的间隔时间 1/(24*60)是说明一分钟 1天除以24*60就是一分钟 关于时间会在后面详解。
)
end;
如果出现ora报错说不是所有变量都以绑定,说明 在
这里没有赋值。
-------------------------------------------job修改------------------------------------------------------
dbms_job.remove(jobid); --删除job这个定时任务
dbms_job.what(jobid,'pro_job_jggl;') --修改job定时任务的存储过程
dbms_job.next_date(jobid,to_date('2018-01-04 12:00:00','yyyy-mm-dd hh24:mi:ss')) --修改job的下次执行时间
dbms_job.interval(jobid,'sysdate+1/24') --修改job的间隔时间
dbms_job.run(jobid); --启动job这个任务
dbms_job.broken(jobid,true) --这个true为broken的boolean值 true的时broken为‘Y’定时任务停止 false的时候就为‘N’定时任务运行
***注意:这些语句为plsql语句 放到 begin end中执行,这里的jobid用的是 job的id, 查询user_jobs查看当前job的id
-----------------------------------job并发量(队列)---------------------------------------------------------------
select * from v$parameter where name = 'job_queue_processes'; --查看job_queue_processes参数 就是并发量
alert system set job_queue_processes = 10 ; --修改job的并发量个数
----------------------------关于job的表----------------------------
select * from user_jobs查看当前用户运行的job情况,可以查看到创建的job是否正常运行
- 字段(列) 类型 描述
- 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 下一次定时运行任务的时间
select * from dba_jobs --查询job的信息
两张表都是视图
user_jobs 查询当前用户的job
dba_jobs 是查询所有的。
DBA_JOBS_RUNNING 是查询运行着的job
当broken为N时 就是启动了,为y时就是停掉了。
-----------------------------------定时任务的属性interval详解--------------------------------------
Internal参数是一个表示Oracle合法日期表达式的字符串。这个日期字符串的值在每次任务被执行时算出,算出的日期表达式有两种可能,要么是未来的一个时间要么就是null。这里要强调一点:很多开发者都没有意识到next_date是在一个任务开始时算出的,而不是在任务成功完成时算出的。
当任务成功完成时,系统通过更新任务队列目录表将前面算出的next_date值置为下一次任务要运行的时间。当由interval表达式算出next_date是null时,任务自动从任务队列中移出,不会再继续执行。因此,如果传递一个null值给interval参数,则该任务仅仅执行一次。
通过给interval参数赋各种不同的值,可以设计出复杂运行时间计划的任务。
在interval中
sysdate+1/24 --这个是间隔一个小时
sysdate+1 --这个是间隔一天
sysdate+7 --这个是间隔一个星期
'TRUNC(SYSDATE + 1)' 每天午夜12点
'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)' 每星期二中午12点
'TRUNC(LAST_DAY(SYSDATE ) + 1)' 每个月第一天的午夜12点
'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24' 每个季度最后一天的晚上11点
'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
无论通过怎样设置interval日期表达式也不能满足要求。这时因为一个任务的下一次运行时间在任务开始时才计算,而在此时是不知道任务在何时结束的。遇到这种情况怎么办呢?当然办法肯定是有的,我们可以通过为任务队列写过程的办法来实现。这里我只是简单介绍以下,可以在前一个任务队列执行的过程中,取得任务完成的系统时间,然后加上指定的时间间隔,拿这个时间来控制下一个要执行的任务。这里有一个前提条件,就是目前运行的任务本身必须要严格遵守自己的时间计划。
oracle创建定时器详解|interval属性的更多相关文章
- Java从入门到精通——数据库篇Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- Oracle执行计划详解
Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ...
- oracle表分区详解
原文来自:http://www.cnblogs.com/leiOOlei/archive/2012/06/08/2541306.html oracle表分区详解 从以下几个方面来整理关于分区表的概念及 ...
- Oracle权限管理详解
Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...
- Oracle外部表详解(转载)
(外部表创建主要注意创建目录访问权限问题.目录路径格式无空格等不相关字符,即必须是当前表访问用户可以访问:关于表中行数的限制问题,如果不加限制注意添加reject limit unlimited:表中 ...
- oracle tkprof 工具详解
oracle tkprof 工具详解 今天是2013-09-26,进行tkprof工具使用学习,在此记录一下笔记: 一)查看需要跟踪会话信息: select s.sid,s.serial#,s.us ...
- Oracle表空间详解
Oracle表空间详解 1.表空间的分类 Oracle数据库把表空间分为两类:系统表空间和非系统表空间. 1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数 ...
- [转]Oracle执行计划详解
Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ...
随机推荐
- innobackupex 还原和备份实例
InnoDB 和非 InnoDB 文件的备份都是通过拷贝文件来做的,但是实现的方式不同,前者是以page为粒度做的(xtrabackup),后者是 cp 或者 tar 命令(innobackupex) ...
- java-mybaits-009-mybatis-spring-使用,SqlSessionFactoryBean、事务
一.版本限制 参看地址:http://www.mybatis.org/spring/ 二.使用入门 2.1.pom <dependency> <groupId>org.myba ...
- android 的 ExpandableListView Example Tutorial
https://www.journaldev.com/9942/android-expandablelistview-example-tutorial Welcome to Android Expan ...
- Cardano(ADA), EOS, RChain(RHOC), Aeternity(AE) 都是极其好的币
从区块链的基础知识出发,研究ETH和EOS的区别 免责声明:EOS目前还在开发中,我们对此项目的一些理解可能会改变.而且,我并不是以太坊开发者,而只是一个喜欢区块链的爱好者.请牢记这两点,请把下面的内 ...
- 查T结果与Z结果的P值[转载]
T检验P值表格来自:https://blog.csdn.net/m0_37777649/article/details/74937242 Z检验表格来自:https://wenku.baidu.com ...
- 3.2 Templates -- The Application Template
1. 当你的应用程序启动时application模板是默认被渲染的的模板. 2. 你应该把你的header, footer和其他任何的装饰内容放到这里.此外,你应该有至少一个{{outlet}}:它是 ...
- JDBC NOTE
JDBC 基本流程: 1. 加载驱动 a. SQLSERVER:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver&quo ...
- idea中使用插件lombok简化java bean的getter/setter/log等常用功能
一.安装. 1. 2. 3. 4. . 二.使用 1. 2. 3. 结果分析,如果没有添加@Setter注解,则LombokTest中的student示例无法使用setAge()等方法.使用lombo ...
- FTP服务器配置实践
1.为linux系统分配IP地址:192.168.X.1/24,并重启网络服务,客户端XP系统IP地址为:192.168.X.2/24, 2.查询本机是否安装了vsftpd服务,结果显示未安装,挂载光 ...
- SQLite 自定义函数,聚合,排序规则
SQLite 自定义函数,聚合,排序规则 1.使用自定义函数, 聚合以及排序规则的基本方法是使用回调函数.这些注册的函数的生命周期只存在于应用程序中, 并不存储在数据库文件中, 因此需要在每个连接建立 ...