有时,我们可能需要让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就生成了。
用PLSQL DEVELOPER创建自动定时执行JOB
最新推荐文章于 2023-10-24 13:25:06 发布