oracle job计时器
来源:互联网 发布:myhome3d云设计 mac 编辑:程序博客网 时间:2024/06/04 19:05
以前总在想:如果能让 数据库 自己在某种特定的条件下(比如时间这种特定的条件下),自己执行一些事务,比如在夜里12:00执行数据备份,定期向表中插入一些数据..., 这时选择 job 来实现以上的一些功能就是一个不错的选择
这个job 执行的功能: 向某张表中定时插入一条记录(比如一分钟插入一条)
step 1: 首先创建一张表 a,
create table a(a date);
step 2: 创建一个proc test ,这个 test 就是取出系统的当前时间值,然后插入到 a 表中
SQL> create or replace procedure test as
begin
insert into a values(sysdate);
end;
/
step 3: 创建一个job,这个job设置为每分钟运行一次,也就是每分钟调用一下上面的 test,这个 proc
SQL> variable job1 number;
SQL>
SQL> begin
dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
end;
/
step 4:去运行上面创建好的 job
SQL> begin
dbms_job.run(:job1);
end;
/
[注]:过几分钟后 用 select to_char(a,'yyyy/mm/dd hh24:mi:ss')from a; 去查看 a 表,发现多了几条件记录,这就说明了 job 正常工作了
如果要删除这个 job 可以用:
SQL> begin
dbms_job.remove(:job1);
end;
/
对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:
在总结之前,先把Job的参数一一说明一下:
job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;
what参数是将被执行的PL/SQL代码块;
next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;
interval参数何时这个工作将被重执行。
其中Interval这个值是决定Job何时,被重新执行的关键。
例如:有存储过程 p_dosomethings,需要被不同的时间间隔执行。
2 jobno number;
3begin
4 dbms_job.submit(
5 jobno,
6 'p_dosomething;', --what
7 to_date('20090101020000','yyyy-mm-dd hh24:mi:ss'),--next_date,可以不填
8 'Interval时间字符串'--interval,关键设置
9 );
10 commit;
11end;
12
1、 每分钟执行
Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)
2、 每天定时执行
例如:每天的凌晨2点执行
Interval => TRUNC(sysdate) + 1 +2 / (24)
3、 每周定时执行
例如:每周一凌晨2点执行
Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
4、 每月定时执行
例如:每月1日凌晨2点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
5、 每季度定时执行
例如每季度的第一天凌晨2点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
6、 每半年定时执行
例如:每年7月1日和1月1日凌晨2点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
7、 每年定时执行
例如:每年1月1日凌晨2点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24
- oracle job计时器
- Oracle job & scheduler job
- ORACLE Job
- Oracle Job
- oracle job
- Oracle JOB
- Oracle JOB
- Oracle Job
- Oracle --JOB
- Oracle--JOB
- oracle job
- oracle job
- Oracle JOB
- oracle job
- ORACLE JOB
- oracle job
- oracle job
- oracle job
- MFC最小化到系统托盘(转载)
- 迁移TortoiseSVN&CollabNet Subversion Edge笔记
- 修复打开Excel提示
- 判断IE总结
- size_t 定义
- oracle job计时器
- JS_小游戏_扫雷
- android 一些东西
- AOP的基础概念
- struts2使用json
- 用Perl 应用Win32::OLE操纵Excel文件
- LINQ TO OBJECT
- Unix 下要采用的20个好习惯
- Scala下的开发工具