1:创建好存储过程
2.创建定时任务
begin
dbms_job.submit(job=>job111,what=>'MH_POLICEMAN_GPS_INFO_PROC;',next_date=>to_date('20191120 21:30:00','yyyyMMdd hh24:mi:ss'),interval=>'sysdate+1+30/(24*60)',no_parse=>false);
end;
说明一下 job11这个可随便定义
dbms_job.submit(
job => :job, //以JOB的方式进行提交
what => '存储过程名称', //job调用的存储过程,建job的目的是要调用存储过程
next_date => sysdate, // 设置的时间是由系统自动生成,可以根据自己的需要设置该时间
interval => 'sysdate+1'); // 多长时间调用一次,时间间隔是一天,根据需要可以自己设置
3..创建job,
BEGIN
DBMS_JOB.RUN(23);
commit;
END;
23 就是定时器得索引 可根据下面方式查出
select * from user_jobs;——查看调度任务
select * from dba_jobs_running;——查看正在执行的调度任务
select * from dba_jobs;——查看执行完的调度任务
4.查询
select job,broken,what,interval,t.* from user_jobs t;
select job,broken,what,interval,t.* from user_jobs t;
job broken what interval ...
81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...
5.参数介绍
job job的唯一标识,自动生成的
broken 是否处于运行状态,N;运行;Y:停止
what 存储过程名称
interval 定义的执行时间
补充:
描述 INTERVAL参数值
每天午夜12点 ''TRUNC(SYSDATE + 1)''
每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×e799bee5baa6e78988e69d833133333761386260+10)/(24×60)''