1、定时任务
定时任务就是oracle提供的,在特定的时间,指定特定的时间间隔执行的存储过程,可以在存储过程中执行一切你想要的操作。数据同步,数据清理。
定时任务创建
定义一个在每日凌晨一点执行数据清除的存储过程,oracle会在固定的时间点清除不需要的数据
declare
job number;
BEGIN
DBMS_JOB.SUBMIT(
JOB => job, /*自动生成JOB_ID*/
WHAT => 'pr_cleanData;', /*需要执行的存储过程名称或SQL语句*/
NEXT_DATE => sysdate+1/24, /*初次执行时间-下一个小时执行一次*/
INTERVAL => 'trunc(sysdate+1)+1/24' /*每次凌晨1点执行一次*/
);
commit;
end;
手工执行Job
通过如下语句可手工执行一次job, job id可以通过查询系统job拿到:
select * from user_jobs;
begin
DBMS_JOB.RUN(1778); /*1778job的id*/
end;
删除Job
begin
/*删除自动执行的job*/
dbms_job.remove(1778);
end;
停用Job
dbms_job.broken(1778,true);
修改要执行的操作
dbms_job.what(1778,'pr_test;');
修改间隔时间
dbms_job.interval(1778,interval);