Oracle 创建定时任务 DBMS_JOB
需求:创建一个每天凌晨一点执行的任务(存储过程)
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;
分类:
【2.4】Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?