给大家介绍一下ORACLE job的使用方法:
这个job 执行的功能: 向某张表中定时插入一条记录(比如一分钟插入一条)
step 1: 首先创建一张表 a,
step 2: 创建一个proc test ,这个 test 就是取出系统的当前时间值,然后插入到 a 表中
step 3: 创建一个job,这个job设置为每分钟运行一次,也就是每分钟调用一下上面的 test,这个 proc
step 4:去运行上面创建好的 job
[注]:过几分钟后 用 select to_char(a,'yyyy/mm/dd hh24:mi:ss')from a; 去查看 a 表,发现多了几条件记录,这就说明了 job 正常工作了
如果要删除这个 job 可以用:
关于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;
/
关于job启动时间
1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
或
Interval => sysdate+1/1440
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