zoukankan      html  css  js  c++  java
  • 使用dbms_scheduler包创建定时任务

    本文使用dbms_scheduler的create_job创建执行存储过程的定时任务

    • 创建一个job
      • job_type指定'STORED_PROCEDURE'
      • job_action中填入要执行的存储过程名字
      • start_date指定起始时间,用于计算后续执行的时间
      • repeat_interval说明时间间隔,可以参考Calendaring Syntax
    BEGIN
    dbms_scheduler.create_job(
            job_name       => 'test_scan',
            job_type       => 'STORED_PROCEDURE',
            job_action     => 'p_task_scan_used_test',
            start_date     =>  sysdate,
            repeat_interval=>  'FREQ=MINUTELY;INTERVAL=10');
    END;
    
    • 创建后通过系统视图检查
    select * from user_scheduler_jobs;
    
    • 取消AUTO_DROP
      默认会在任务正确执行完成后删除任务,此处修改该属性不删除。
    begin
    dbms_scheduler.set_attribute(
             name      => 'test_scan',
             attribute => 'AUTO_DROP',
             value     => FALSE);
    end;
    
    • 执行时传入参数

      • 设置参数个数
      begin
      dbms_scheduler.set_attribute(
               name      => 'mac_scan',
               attribute => 'NUMBER_OF_ARGUMENTS',
               value     => 2);
      end;
    
    • 设置参数值
      begin
      dbms_scheduler.SET_JOB_ARGUMENT_VALUE (
          job_name => 'test_scan',
          argument_position => 1,
          argument_value => '1000');
      end;
          
      begin
      dbms_scheduler.SET_JOB_ARGUMENT_VALUE (
          job_name => 'test_scan',
          argument_position => 2,
          argument_value => '5000');
      end;
    
    • 测试job是否可以正确执行
    select * from user_scheduler_job_run_details;
    select * from user_scheduler_job_log;
    
    • 启动定时任务
    begin
        dbms_scheduler.enable(
            name =>  'test_scan');
    end;
    

    至此,定时任务部署完毕。
    -- EOF --

  • 相关阅读:
    设计模式(简述)
    sql注入防御
    两个防SQL注入过滤代码
    SQL注入实战利用“dbo”获得SQL管理权限和系统权限
    SQL注入技术和跨站脚本攻击的检测
    蓝雨设计整站SQL注入漏洞
    SQL注入攻击零距离
    菜鸟入门级:SQL注入攻击
    三步堵死SQL注入漏洞
    终极防范SQL注入漏洞
  • 原文地址:https://www.cnblogs.com/shenfeng/p/dbms_scheduler_create_job.html
Copyright © 2011-2022 走看看