资源描述:
《oracle定时器调用存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、oracle定时器调用存储过程博客分类:·数据库介绍orcale定时器的简单用法,希望大家一看就能明白1.创建一个表,为了能清楚看到定时器的运行情况我们创建一个带有日期字段的表 Sql代码 1.create table job_table(run_time date); createtablejob_table(run_timedate);2.创建存储过程 Sql代码 1.create or replace procedure job_proc is 2.begin 3. insert into job_table (run_time) values (sysdate);
2、 4.end; createorreplaceprocedurejob_procisbegininsertintojob_table(run_time)values(sysdate);end;3.创建job,并且指定为每天中午12点执行e.g:1,create table job_table(run_time date);2,createorreplaceprocedurejob_procisbegininsertintojob_table(run_time)values(sysdate);endjob_proc;3,declarejobnumber;begindbms_jo
3、b.submit(job,'job_proc;',sysdate,'TRUNC(SYSDATE+1)+(12*60)/(24*60)');endcommit;Sql代码 1.declare 2. job number; 3.begin 4. dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');5.--每分钟执行 6.end/ 7.commit; declarejobnumber;begindbms_job.submit(job,'job_proc;',s
4、ysdate,'TRUNC(sysdate,''mi'')+1/(24*60)');end/commit;4.创建之后自动处于运行状态,我们查询job表,看看我们创建的job Sql代码 1.select job,broken,what,interval,t.* from user_jobs t; selectjob,broken,what,interval,t.*fromuser_jobst;jobbrokenwhatinterval...81Njob_proc;TRUNC(sysdate,'mi')+1/(24*60)... 参数介绍 jobjob的唯一标识,自动生成
5、的 broken是否处于运行状态,N;运行;Y:停止 what存储过程名称 interval定义的执行时间补充:描述 INTERVAL参数值每天午夜12点 ''TRUNC(SYSDATE+1)''每天早上8点30分 ''TRUNC(SYSDATE+1)+(8*60+30)/(24*60)''每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE),''''TUESDAY'''')+12/24''每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE)+1)''
6、每个季度最后一天的晚上11点''TRUNC(ADD_MONTHS(SYSDATE+2/24,3),''Q'')-1/24''每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE,''''SATURDAY"),NEXT_DAY(SYSDATE,"SUNDAY")))+(6×60+10)/(24×60)''5.我们查询一下表job_table看看里面的数据 Sql代码 1.select * from job_table select*fromjob_tableRUN_TIME2011-7-1下午05:21:142011-7-1下午05:22:
7、042011-7-1下午05:23:046.停止job,停止成功之后查看user_jobs表的broken是否变为Y值了 Sql代码 1.begin 2. dbms_job.broken(81,true); 3.end; 4.commit; begindbms_job.broken(81,true);end;commit;7.启动job,启动成功之后查看user_jobs表的broken是否变为N值了 Sql代码 1.begin 2. dbms_job.run(81