> 文章列表 > Oracle之作业调度

Oracle之作业调度

Oracle之作业调度

背景

项目上有时候,要定时轮询作业和相关的脚本,下面是执行job的两种方式

a.使用Oracle自身dbms_job

b.使用Linux的crontab功能,推荐使用此方式,因为比较稳定而且容易维护减少工作量。

下面是上述两种方式的具体操作步骤。

一、使用Oracle自身dbms_job


/*删除自动执行的job*/
begin
dbms_job.remove(63);
commit;
end;--查询job
select * from user_jobs where what=\'proc_tr_temp_his_tables;\';--测试
begin
dbms_job.run(64);
end;--查询系统表查看该job信息
select * from user_jobs where what=\'pro_tab_job;\';--手动sql调用job   (直接调用job可以忽略开始时间)
begin
dbms_job.run(40); /*40 job的id*/
end;--删除任务
begin
/*删除自动执行的job*/
dbms_job.remove(24);
commit;
end;--停止job
dbms.broken(23,broken,nextdate);   
dbms_job.broken(23,true,next_date); /*停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。*/--修改间隔时间
dbms_job.interval(job,interval);--修改下次执行时间
dbms_job.next_date(job,next_date);--修改要执行的操作 
dbms_