需求:创建一个每天凌晨一点执行的任务(存储过程)
1、创建存储过程
-- 一般存储过程语法
CREATE OR REPLACE PROCEDURE UPDATE_LABEL_TABLE_DATE_DT IS
BEGIN
UPDATE IC_CO_BAE_INFO SET DT = TO_CHAR(TRUNC(SYSDATE-1), 'yyyy-MM-dd');
UPDATE IC_RG_RRG_INFO_V1 SET DT = TO_CHAR(TRUNC(SYSDATE-1), 'yyyy-MM-dd');
UPDATE IC_VE_CAT_INFO SET DT = TO_CHAR(TRUNC(SYSDATE-1), 'yyyy-MM-dd');
END;
2、创建定时任务
-- dbms_job.submit(作业名, '存储过程名;', 定时类型, 任务执行时间点);
DECLARE UPDATE_LABEL_TABLE_DATE_DT_JOB NUMBER;
BEGIN
dbms_job.submit( UPDATE_LABEL_TABLE_DATE_DT_JOB, 'UPDATE_LABEL_TABLE_DATE_DT;', SYSDATE, 'sysdate+5/86400' );
commit;
END;
-- 查看创建的定时任务(dydsba查看表:dba_jobs)
select * from user_jobs;
4、启动定时任务
-- 1、获取当前作业job ID,假设为:3
select job from user_jobs where WHAT='UPDATE_LABEL_TABLE_DATE_DT;'
-- 2、执行job任务
begin
dbms_job.run(3);
commit;
end;
5、停止定时任务
begin
dbms_job.broken(3, true);
commit;
end;
6、修改定时任务
-- 1、修改定时任务时间:改为每日凌晨一点执行
-- // TODO dbms_job.interval 语法详解
begin
dbms_job.interval(3, 'TRUNC(sysdate) + 1 +1/(24)');
commit;
end;
7、删除定时任务
begin
dbms_job.remove(3,);
commit;
end;
标签:DBMS,--,JOB,UPDATE,job,Oracle,DT,定时,dbms
From: https://www.cnblogs.com/DeepInThought/p/17339139.html