用PLSQL DEVELOPER创建自动定时执行JOB

      有时,我们可能需要让oracle自动定时去执行特定的任务,比如数据备份,自动更新等等,用PLSQL DEVELOPER可以很轻松的完成这个事情:

      具体如下:

      1,创建你要定期执行的存储过程,并保存起来。比如下面这个存储过程,自动为没有提交周报的单位提交一份系统默认的周报。并把已经写了的草稿也自动提交,这个任务需要每周五早上9点执行,我们先创建存储过程并保存:

create or replace procedure AUTO_COMMIT_WEEKREPORT as
BEGIN
  insert into TB_FLOWWEEKLYREPORT(WEEKLYID,ORGID,ORGNAME,CURWEEK,OPERATIONINFO,SECURITYINFO,ADVISEMENT,FLAG,STATUS,MEMO,OPID,OPTIME)
  select x.weekID,x.orgid,a.orgname,x.curweek,'正常','正常','无',1,2,'',x.userid,x.curtime from (
                 select t.*,'WR'||to_char(sysdate,'YYYY')||'_'||to_char(sysdate,'WW')||'_'||t.orgid weekID,
                        to_char(sysdate,'WW') curweek,to_char(sysdate,'YYYYMMDDHH24MISS') curTime 
                 from TB_FLOWWEEKLYUSER t where t.orgid not in(
                       select y.orgid from TB_FLOWWEEKLYREPORT y
                           where y.curweek=to_char(sysdate,'WW'))) x left join sys_orginfo a on x.orgid=a.orgid;
  update TB_FLOWWEEKLYREPORT set FLAG=1,STATUS=2 where FLAG=0;
  commit;
END AUTO_COMMIT_WEEKREPORT;

 

      2.打开DEVELOPER,在左下方的列表里选中DBMS_Jobs,然后按右键然后选择new,在出来的界面里,what后面填入刚创建的存储过程“AUTO_COMMIT_WEEKREPORT ;”注意后面有个分号。next date可以不填,interval填入你要定时执行的时间。这里是星期五上午9点,我们这样填“TRUNC(next_day(sysdate,'星期五'))+9/24”就可以了。其他的可以不填写。

       这样就可以了,一个定时执行的job就生成了。

你可能感兴趣的:(ORACLE,存储,数据备份,insert,任务,jobs,oracle)