oracle的JOB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的JOB相关的知识,希望对你有一定的参考价值。

就是ORACLE的自动执行那玩意,假设我有一个存储过程 A 怎么让数据库定时执行A
JOB没用过,所以请教下
what => 'dbms_output.pub_line(''asdf'');', 是不是替换存储过程名?

在plsql中执行如下脚本可以创建一个在每天晚上23点执行的job

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的主要内容,如果未能解决你的问题,请参考以下文章

怎样实现每天自动执行oracle的存储过程一次

怎样实现每天自动执行oracle的存储过程一次?

怎么把数据从oracle11迁到oracle12

linux 怎么查找oracle11g的安装目录

oracle的数据怎么发送到接口

什么是oracle的实例