《ORACLE数据库DBMSJOB的创建与使用.docx》由会员分享,可在线阅读,更多相关《ORACLE数据库DBMSJOB的创建与使用.docx(5页珍藏版)》请在三一办公上搜索。
1、ORACLE数据库DBMSJOB的创建与使用目录- 创建 DBMS_JOB 查看所有的 JOB 停止 JOB 启动 JOB 删除 JOB 修改 JOB 关于 interval 的一些设置技巧 创建 DBMS_JOB 使用以下语句: ? 1 2 3 4 5 6 7 8 9 10 VARIABLE jobno number; begin DBMS_JOB.SUBMIT( :jobno, -job号,ORACLE自动分配 your_procedure;, -执行的存储过程或SQL语句,;不能省略 next_date, -下次执行时间 interval -每次间隔时间,以天为单位 ); commit;
2、 end; 例子: 作为示范,先创建一张简单的表: ? 1 CREATE TABLE T_TIME( 2 JOB_TIME DATE not null 3 ); 每分种为 T_TIME 表插入一条数据: ? 1 2 3 4 5 6 7 8 9 10 VARIABLE jobno number; begin DBMS_JOB.SUBMIT( :jobno, insert into T_TIME values (sysdate);, Sysdate, sysdate+1/24/60 ); commit; end; 每天删除前一天的数据: ? 1 2 3 4 5 6 7 8 9 10 VARIABL
3、E jobno number; begin DBMS_JOB.SUBMIT( :jobno, delete T_TIME where JOB_TIME TRUNC(sysdate,mi) + 1/(24*60) 2:每天定时执行 例如:每天的凌晨1点执行 Interval = TRUNC(sysdate) + 1 +1/(24) 3:每周定时执行 例如:每周一凌晨1点执行 Interval = TRUNC(next_day(sysdate,星期一)+1/24 4:每月定时执行 例如:每月1日凌晨1点执行 Interval =TRUNC(LAST_DAY(SYSDATE)+1+1/24 5:每季
4、度定时执行 例如每季度的第一天凌晨1点执行 Interval = TRUNC(ADD_MONTHS(SYSDATE,3),Q) + 1/24 6:每半年定时执行 例如:每年x月x日和x月x日凌晨1点 Interval = ADD_MONTHS(trunc(sysdate,yyyy),6)+1/24 7:每年定时执行 例如:每年x月x日凌晨1点执行 Interval =ADD_MONTHS(trunc(sysdate,yyyy), 12)+1/24 job的运行频率设置 1.每天固定时间运行,比如早上8:10分钟:Trunc(Sysdate+1) + (8*60+10)/24*60 2.Toad中提供的: 每天:trunc(sysdate+1) 每周:trunc(sysdate+7) 每月:trunc(sysdate+30) 每个星期日:next_day(trunc(sysdate),星期日) 每天6点:trunc(sysdate+1)+6/24 半个小时:sysdate+30/(24*60) 3.每个小时的第15分钟运行,比如:8:15,9:15,10:15:trunc(sysdate,hh)+(60+15)/(24*60)。