想要使用Oracle自带的定时计划,来固定每过一段时间执行一次固定的SQL语句,按照如下操作进行设置。
1. 首先创建一个存储过程(必须是存储过程,在设置定时任务时直接写SQL语句会不执行)
create or replace procedure proc_changesettings as begin delete from tb_f_record where id = 0; commit; exception when others then rollback; end;
2. 执行创建定时任务SQL语句,dbms_job.submit第二个参数就是存储过程名称
declare JOB number; begin dbms_job.submit(JOB, 'proc_changesettings;', sysdate ,'TRUNC(sysdate,''mi'') + 1/ (24*60)'); --1分钟一次 commit; DBMS_JOB.RUN(JOB); end;
以上就创建好了,可以使用下面的SQL语句进行查询
select job,broken,what,interval,t.* from user_jobs t;
另外,当定时任务不再使用时,通过如下SQL语句来删除,参数job是表user_jobs的job字段
begin dbms_job.remove(job); end;