oracle 创建定时任务
1 --1.创建测试表 2 create table job_test(id integer,add_time date); 3 4 --2.创建存储过程 5 create or replace procedure prc_job_test is 6 begin 7 insert into job_test values (SEQ_TM_ID.nextval, sysdate); 8 commit; 9 end prc_job_test; 10 11 --3.创建任务 12 declare 13 tm_job number; 14 begin 15 sys.dbms_job.submit(tm_job, --任务名称 16 'prc_job_test;',--执行的过程 17 sysdate,--执行时间 18 'sysdate+1/(24*60*10)');--下次执行时间 19 end; 20 21 --4.查询任务 22 select * from dba_jobs; 23 24 select t.*, t.rowid from job_test t order by add_time desc 25 26 --5.执行任务 27 begin 28 dbms_job.run(25);--25为任务的id 29 end; 30 31 --6.停止任务 32 begin 33 dbms_job.broken(25, true, sysdate); 34 commit; 35 end; 36 37 --7.删除任务 38 begin 39 dbms_job.remove(25); 40 end; 1 --8.删除任务脚本 2 begin 3 for v in(select job from dba_jobs where what = 'prc_job_test;') loop 4 dbms_job.remove(v.job); 5 end loop; 6 commit; 7 end;
完整脚本例子:
--1.删除表脚本 DECLARE num NUMBER ; BEGIN SELECT COUNT (1) INTO num FROM user_tables WHERE TABLE_NAME = 'JOB_TEST' ; IF num = 1 THEN EXECUTE IMMEDIATE ' drop table JOB_TEST ' ; END IF; END; / --2.创建测试表 create table job_test(id integer,add_time date); / --3.创建存储过程 create or replace procedure PRC_JOB_TEST is begin insert into job_test values (1, sysdate); commit; end prc_job_test; / --4.删除任务脚本 begin for v in(select job from dba_jobs where what = 'PRC_JOB_TEST;') loop dbms_job.remove(v.job); end loop; commit; end; / --5.创建任务 declare tm_job number; begin sys.dbms_job.submit(tm_job, --任务名称 'PRC_JOB_TEST;',--执行的过程 sysdate,--执行时间 'sysdate+1/(24*60*10)');--下次执行时间 COMMIT; end;
原文链接:https://www.cnblogs.com/zyx-/p/8032954.html