Oracle Job的CRUD测试

本文详细介绍了Oracle中Job的常用方法及测试脚本,包括如何创建、删除、运行、标记为损坏状态以及修改Job的基本属性。通过示例代码演示了如何使用DBMS_JOB包进行Job管理。

常用方法:

1、Submit(),创建一个新的job,并返回jobid;

2、Broken(),标识Job为已坏掉状态,但即使设置job为broken状态,也不会停止job的执行。补充:job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将自动被标记为broken(注:此功能未测试过)。

3、即使drop掉一个job,Oracle会自动创建一个新的job,jobid不同于原job。不论是broken()还是drop,都不能让job真正停下来。

4、Remove(),根据输入的jobid来删除一个job;

5、Run(),job被立即执行一次;

6、Change() 和 Next_Date(), Interval(), What() 功能类似,只不过Change是可更改全部,其他几个是只能改单项。

7、ISubmit(),允许录入一个 jobid ,若存在,则报错;否则指定该 jobid。

一些测试脚本:

-- 测试 submit
declare
  job_id pls_integer;
begin
  sys.dbms_job.submit(
      job       => job_id,
      what      => 'ETL_DAILY;',
      next_date => to_date('2014-03-27 14:33:00', 'yyyy-mm-dd hh24:mi:ss'),
      interval  => 'sysdate + 1/1440' 
  );
  dbms_output.put_line(job_id);
  commit;
end;

-- 测试 remove
declare
  job_id pls_integer := 27;
begin
  sys.dbms_job.remove(job => job_id);
  commit;
end;

-- 测试 run
declare
  job_id pls_integer := 27;
begin
  sys.dbms_job.run(job => job_id);
  commit;
end;

-- 测试 broken 的 job,如何恢复
declare
  job_id pls_integer := 27;
begin
  sys.dbms_job.broken(job       => job_id,
                      broken    => TRUE);
  commit; /* 若run 后,broken状态即消失 */
end;

-- 测试 change
declare
  job_id pls_integer := 27;
begin
  sys.dbms_job.change(
      job       => job_id,
      what      => 'ETL_DAILY;',
      next_date => to_date('27-03-2014 16:17:00', 'dd-mm-yyyy hh24:mi:ss'),
      interval  => 'sysdate + 1/1440' 
  );
  commit;
end;

-- 测试 next_date
declare
  job_id pls_integer := 27;
begin
  sys.dbms_job.next_date(
      job       => job_id,
      next_date => to_date('27-03-2014 16:38:30', 'dd-mm-yyyy hh24:mi:ss') 
  );
  commit;
end;

参考信息

Oracle job自动任务实用指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierre_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值