oracle的JOB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的JOB相关的知识,希望对你有一定的参考价值。
就是ORACLE的自动执行那玩意,假设我有一个存储过程 A 怎么让数据库定时执行A
JOB没用过,所以请教下
what => 'dbms_output.pub_line(''asdf'');', 是不是替换存储过程名?
begin
sys.dbms_job.submit(job => :job, -- job编号
what => 'dbms_output.pub_line(''asdf'');', -- 执行脚本
next_date => to_date('17-01-2011 16:17:31', 'dd-mm-yyyy hh24:mi:ss'), -- 下次执行时间
interval => 'trunc(sysdate)+23/24'); -- 执行时间间隔
commit;
end;
/
其中interval参数的几个可能的示范值如下:
A,每5分钟执行一次
interval => 'trunc(sysdate,'mi')+5/24/60'
B,每小时执行一次,整点执行
interval => 'trunc(sysdate,'HH')+1/24'
C,一个小时后执行
interval => 'sysdate+1/24' 参考技术A declare
v_job number(4);
begin
dbms_job.submit(v_job,'asdf;',sysdate,'sysdate+1‘);
end;
这边的sysdate,是系统时间,sysdate+1是下次执行时间是1天后的此时 参考技术B 了解看看 参考技术C 把你的存储过程替换到what=就可以了
Oracle 定时任务job实际应用
参考技术A Oracle定时任务是在oracle系统中一个非常重要的子系统,运用得当,可以大大提高我们系统运行和维护能力。oracle定时任务的功能,可以在指定的时间点自行执行任务。那么在实际工作中,什么样的场景会用到定时任务呢?下面是在实际工作中用到的真实业务场景举例
上面是通过脚本创建,当然也可以通过plsql图形化工具来创建,具体创建过程如下
**系统会自动分配一个任务号jobno ** ,根据jobno 可以进行如下定时任务操作
查询结果如下
其中broken = N 表示该job已经生效
我们再来查看目标表中有没有定时插入数据
可以看到,定时一分钟插入了一条数据。
1、根据jobno,执行以下脚本可以停止job
再来查看定时任务是否停用成功
我们发现BROKEN=Y 说明定时任务已经停止成功了
BROKEN = N ,刚才的定时任务又启动了
下面总计了一些定时任务中常用的运行时间
以上是关于oracle的JOB的主要内容,如果未能解决你的问题,请参考以下文章