oracle起定时任务,每隔1秒执行一次

时间:2022-03-02 12:16:15

创建一个测试表和一个存储过程:

create table a(a date);  

create or replace procedure test as
begin
insert into a values(sysdate);
end;

定时任务样板:

declare
job1 number;
begin
dbms_job.submit(job1,
what => 'test;',
next_date => sysdate,
interval => 'sysdate+1/(24*60*60)'); -- 每隔1s处理一次用户表
commit;
end;

查询定时任务:

select job,broken,what,interval,t.* from user_jobs t;     

删除定时任务:

begin
dbms_job.remove('');
commit;
end;
  1. Interval => TRUNC(sysdate+1)  --每天凌晨0点执行
  2. Interval => TRUNC(sysdate+1)+1/24  --每天凌晨1点执行

启动定时任务:

begin
dbms_job.run(24); -- 24jod id
-- commit;
end;