作为Oracle的定时任务,Oracle job介于服务器层级的crontab和应用程序(如java spring的定时任务)之间,在数据库层对数据处理有重要的价值。
下面简单分享一下Oracle job如何来调用存储过程。
--创建job,不带参数的情况
variable etljobno number;
begin
dbms_job.submit(:etljobno,'proc_ctitetl;',sysdate,'sysdate+3/1440');
end;
/
--创建job,带参数的情况
variable JOB_TEST number;
begin
dbms_job.submit(:JOB_TEST,'begin hlqtestjob(1,''aa''); end;',sysdate,'sysdate+1/1440');
commit;
end;
/
--启动job
begin
dbms_job.run(:etljobno);
end;
/
--停止正在执行的job
begin
dbms_job.broken(:etljobno,true );
end;
/
--删除job
begin
dbms_job.remove(:etljobno);
end;
commit;
/
--查询job
SELECT JOB, NEXT_DATE, NEXT_SEC, FA