目录
1、为什么要添加定时器?
和linux中的crontab一样,来执行一些需要定期执行的一些操作;
2、创建oracle定时器需要几步?
三步:
1)准备sql;
2)创建存储进程,即函数;
3)创建定时器,定时去执行此函数;
3、举个例子?
准备sql:
1)准备sql
UPDATE ceshi SET error_count = 0 WHERE a = 1 AND b = 2;
2)创建存储进程
PS:切记切记,不可存在空格,不然会报错的,一定要检查,尤其是结尾处,绝对不要存在空格,我在此处卡了整整一天。
CREATE OR REPLACE PROCEDURE UPDATE_COUNT IS -- UPDATE_COUNT:函数名称
BEGIN
UPDATE ceshi SET error_count = 0 WHERE a = 1 AND b = 2; -- 具体要执行的sql
commit;
END;
3)创建定时器,定时去执行此函数
DECLARE UPDATE_COUNT_time number; -- UPDATE_COUNT_time:给函数定义的工作空间
BEGIN
SYS.DBMS_JOB.SUBMIT(
job => UPDATE_COUNT_time, -- 调用工作空间
what => 'UPDATE_COUNT;', -- 工作空间中执行的函数
next_date => SYSDATE, -- 下一次执行的时间,不要改,貌似是这样子,不太确定
interval => 'sysdate+300/86400'); -- 每隔5分钟执行一次
commit;
End;
定时时间可以参考:https://www.cnblogs.com/lcword/p/5622966.html
4、查看定时器
SELECT job, next_date, next_sec, failures, broken FROM user_jobs;