• 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 --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
  • 相关阅读:
    项目经验:如何做到不和产品打起来
    leetcode-剑指30-OK
    leetcode-剑指05-OK
    leetcode-剑指58-OK
    leetcode-剑指28-OK
    leetcode-剑指53-I
    leetcode-剑指18-OK
    leetcode-剑指15-OK
    leetcode-剑指27-OK
    leetcode-剑指17-OK
  • 原文地址:https://www.cnblogs.com/irishua/p/11263049.html
Copyright © 2020-2023  润新知