1.查询所有的定时任务
select * from user_jobs;--(dba_jobs、all_jobs)
关于查询结果表的字段解释可以参考官网:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/DBA_JOBS.html#GUID-278CEBB4-5095-4FEA-AE52-1254F7EE361F
2.新建定时任务(注意要在当前用户下,建立当前用户的定时任务)
DECLARE
job number;
BEGIN
DBMS_JOB.SUBMIT(
JOB =>job,
WHAT=>'用户名.任务名(可以是存储过程);',
NEXT_DATE => sysdate,--当前执行时间
INTERVAL =>'TRUNC(SYSDATE + 1) + (7*60)/(24*60)');--下次执行时间(每天早上7点同步一次)
commit;
END;
/
3.trunc函数对时间的作用
select trunc(sysdate) from dual; --当前日期
select trunc(sysdate,'yyyy') from dual; --当前年的第一天
select trunc(sysdate, 'mm') from dual; --当前月的第一天
select trunc(sysdate,'d') from dual; --当前周的第一天(星期天为第一天)
select trunc(sysdate,'dd') from dual; --当前日的开始时间
select trunc(sysdate, 'hh') from dual; --当前小时
select trunc(sysdate, 'mi') from dual; --当前的分钟
4.删除定时任务
begin
dbms_job.remove(83); --83为第一个查询里面查询出的job号
commit;
end;
原文参考:https://blog.csdn.net/sinat_35626559/article/details/78912828