目录
PLSQL定时任务创建(Oracle数据库中dbms_job使用)
通过本文将学习到
- 如何用PLSQL在中创建一个JOB
- 查看JOB
- 操作JOB
- 时间的判断
1、前言
2018/8/20,今天我们邮件系统出现了问题 ,无法正常的将待发邮件发出,需要手动将是否发送的标记改为N。然后就开始不停的找JOB的使用。网上已经写了特别多的例子,但是让人很烦的就是创建的时候写的太模糊,然后我找了很多!搞得很费时间,所以我就按照自己觉得有用的将它结合起来用!简单来说是转载!
这些下面的所有东西都是存储过程,需要在BEGIN END;块中进行操作不然会出错!下面是整个的概述,可以用但是比较麻烦,想快直接从二开始看
-
此处为代码创建,新手推荐使用窗口创建,容易实现!
- 1、创建job
begin
sys.dbms_job.submit(job => 1, --代表的是号码,第几个定时任务
what => 'sys_mailing_list_job;', --这个是调用的你想使用的存储过程切记要打;不然会报错
next_date => to_date('20-08-2018 14:05:00', 'dd-mm-yyyy hh24:mi:ss'), --这个是下次调用的时间
interval => 'trunc(sysdate,''hh'')+(60+5)/(24*60)');
commit; --这个是间隔时间 。我这个代表的是每个小时的过5 比如 1:05,2:05,3:05...24小时的
end;
- 2、删除job:
dbms_job.remove(jobno); -- jobno就是你得任务号
- 3、修改要执行的操作:
job:dbms_job.what(jobno, what); --指定任务号以及存储过程
- 4、修改下次执行时间:
dbms_job.next_date(jobno, next_date); --指定任务号的时间
- 5、修改间隔时间:
dbms_job.interval(jobno, interval);
--指定
任务号的间隔时间 - 6、启动job:
dbms_job.run(jobno); -