最近的项目中用到定时任务,做了个小小笔记,分享给大家。
在 Oracle 19c 中,若想创建个定时任务,可以通过 DBMS_SCHEDULER 或 DBMS_JOB 来创建定时任务,确保存储过程 pro_test 每天零点自动执行一次。
1. 创建作业
1.1.授权说明
-- 授权创建JOB权限
GRANT CREATE JOB TO <USER>
-- 若要存储过程属于其他用户,需要授权
GRANT EXECUTE ON PRO_TEST TO <USER>;
1.2.创建作业(Job)
1.2.1
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'JOB_PRO_TEST_DAILY', -- 作业名称
job_type => 'STORED_PROCEDURE', -- 作业类型(存储过程)
job_action => 'PRO_TEST', -- 存储过程名
start_date => SYSTIMESTAMP, -- 开始时间(立即生效)
repeat_interval => 'FREQ=DAILY; BYHOUR=0; BYMINUTE=0; BYSECOND=0', -- 每天零点执行
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => TRUE,-- 启用作业
auto_drop => false,--是否定时任务停掉不要了就自动删除改定时任务
comments => 'Daily execution of PRO_TEST at midnight'
);
END;
1.2.2
begin
sys.dbms_scheduler.create_job(job_name


1370

被折叠的 条评论
为什么被折叠?



