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 --1.刪除表腳本 2 DECLARE num NUMBER ; 3 BEGIN 4 SELECT 5 COUNT (1) INTO num 6 FROM 7 user_tables 8 WHERE 9 TABLE_NAME = 'JOB_TEST' ; 10 IF num = 1 THEN 11 EXECUTE IMMEDIATE ' 12 drop table JOB_TEST 13 ' ; 14 END IF; 15 END; 16 / 17 --2.創建測試表 18 create table job_test(id integer,add_time date); 19 / 20 --3.創建存儲過程 21 create or replace procedure PRC_JOB_TEST is 22 begin 23 insert into job_test values (1, sysdate); 24 commit; 25 end prc_job_test; 26 / 27 --4.刪除任務腳本 28 begin 29 for v in(select job from dba_jobs where what = 'PRC_JOB_TEST;') loop 30 dbms_job.remove(v.job); 31 end loop; 32 commit; 33 end; 34 / 35 --5.創建任務 36 declare 37 tm_job number; 38 begin 39 sys.dbms_job.submit(tm_job, --任務名稱 40 'PRC_JOB_TEST;',--執行的過程 41 sysdate,--執行時間 42 'sysdate+1/(24*60*10)');--下次執行時間 43 COMMIT; 44 end;
原文鏈接:https://www.cnblogs.com/zyx-/p/8032954.html