想要使用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;