欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle创建job实例:创建一个job,使oracle每天23:59执行存储过程update_all_data

程序员文章站 2022-04-14 10:29:10
oracle创建job实例:创建一个job,使oracle每天23:59执行存储过程update_all_data --创建一个job,使oracle每天23:59执行存储过程update_al...

oracle创建job实例:创建一个job,使oracle每天23:59执行存储过程update_all_data

--创建一个job,使oracle每天23:59执行存储过程update_all_data
declare
  x number(9);
begin
  sys.dbms_job.submit
    (
      job        => x
     ,what       => 'update_all_data;'--存储过程名,可以是多个,用分号隔开
     ,next_date  => to_date('2012-11-02 23:59:00','yyyy-mm-dd hh24:mi:ss')
     ,interval   => 'trunc(sysdate+1)' --循环频率为一天
     ,no_parse   => false
    );
    commit;
end;
--删除job
begin
  dbms_job.remove(job);--job为任务号 可用select j.* from  dba_jobs j
end;
--修改job
begin
  dbms_job.change(264,
                  'initbigareasaleranking;initbigareamanagersalegrowth;initbigareasalegrowth;initbigareamanagersalerate;initbigareasalerate;initcontractsaledevote;initcustomsalerankings;',
                  to_date('2014.12.12 12:31:03', 'yyyy-mm-dd hh24:mi:ss'),
                  'trunc(sysdate + 1) + (12*60+31)/(24*60)');
  commit;
end;

停止job
select sid,job from dba_jobs_running;
select sid,serial# from v$session where sid='&sid';
alter system kill session '&sid,&serial';
begin
 dbms_job.broken(&job,true);
end;

-------------查询job-----------------
select job, what, next_date, next_sec, sysdate, failures, broken,interval from user_jobs a;