首先确定需要执行的任务
以下存储过程:
create procedure fdgetmessage
is
begin
insert into fdmessagesend select username,fdcontent.contentinfor,fdcolm.sendernum,'0' from fduser_colm,
fdcolm,fdcontent where fduser_colm.colmid=fdcolm.colmid and fdcontent.colmid=fdcolm.colmid and tag='1' and
fdcontent.sendtime>sysdate-1 and fdcontent.sendtime<sysdate;
commit;
exception
when others then
rollback;
end;
/
作用是提取当天需要处理的数据到另一个表中
然后定义一个job
variable n number;
begin
dbms_job.submit(:n,
'fdgetmessage;',
sysdate,
'TRUNC(SYSDATE + 1)');
commit;
end;
/
print n; //n是这个job的编号
这个job作用是每天00:00 后执行一次fdgetmessage存储过程
如果想要立即执行可以用
begin
dbms_job.run(job编号);
commit;
end;
/
修改任务
execute dbms_job.change(job编号,'fdgetmessage;',SYSDATE,'TRUNC(SYSDATE + 1)+(1*60)/(24*60)');
每天早上一点执行
察看作业情况
select job,LAST_DATE,LAST_SEC,next_date,next_sec,failures,broken from user_jobs;
移除任务
begin
dbms_job.remove(job编号);
commit;
end;