zoukankan      html  css  js  c++  java
  • 定时执行存储过程

    基础

    • Oracle定时器

    Oracle定时器:定时执行某个存储过程。

    通过pl/SQL的图形化界面可以看到。定时器包括:调度和存储过程连接口

     

     

    • 存储过程连接口

    存储过程连接口,主要告诉定时器要执行哪一个存储过程。存储过程连接口就是存储过程执行的入口。从图形化界面可以看出“Action”就是要执行的存储过程。而“Arguments”就是调用该存储过程所需要的参数类型及存储过程所调用的必须参数。

     

    • 存储过程

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

    • 调度

    调度最主要的功能就是告诉定时器神什么时候执行定时任务,执行的任务的频率是多久。

     

    案件脚本的创建

    /* 创建可执行程序 */
    begin
        DBMS_SCHEDULER.CREATE_PROGRAM(
            program_name        =>'peace_sj_his.PROG_DATASYNC',
            program_action      =>'peace_sj_his.P_DATASYNC',
            program_type        =>'STORED_PROCEDURE',
            number_of_arguments =>3,
            comments            =>'数据同步程序',
            enabled             => false
        );
    end;
    /

    /* 设置可执行程序的输入参数 */
    begin
        DBMS_SCHEDULER.define_program_argument(
            program_name      =>'peace_sj_his.PROG_DATASYNC',
            argument_position =>1,
            argument_type     =>'VARCHAR2',
            default_value     =>''
        );
        DBMS_SCHEDULER.define_program_argument(
            program_name      =>'peace_sj_his.PROG_DATASYNC',
            argument_position =>2,
            argument_type     =>'VARCHAR2',
            default_value     =>''
        );
        DBMS_SCHEDULER.define_program_argument(
            program_name      =>'peace_sj_his.PROG_DATASYNC',
            argument_position =>3,
            argument_type     =>'VARCHAR2',
            default_value     =>''
        );
    END;
    /

    /* 创建调度表 */
    begin
        DBMS_SCHEDULER.create_schedule(
            schedule_name   =>'peace_sj_his.SCH_DATASYNC',
            repeat_interval =>'FREQ=MINUTELY;INTERVAL=2',
            start_date      => sysdate,
            comments        =>'数据同步调度'
        );
    end;
    /

    /* 创建作业 */
    begin
        DBMS_SCHEDULER.create_job(
            job_name      =>'peace_sj_his.JOB_PPTN',    
            program_name  =>'peace_sj_his.PROG_DATASYNC',
            schedule_name =>'peace_sj_his.SCH_DATASYNC',
            job_class     =>'DEFAULT_JOB_CLASS',           
            comments      =>'雨量数据同步作业',
            auto_drop     => false,
            enabled       => false
        );
    end;
    /

    /* 启动可执行程序 */
    exec DBMS_SCHEDULER.enable('PROG_DATASYNC');

    /* 启动作业 */
    exec DBMS_SCHEDULER.enable('JOB_PPTN');

    /* 设置不同的作业参数 */
    begin
        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
            job_name          =>'peace_sj_his.JOB_PPTN',
            argument_position =>1,
            argument_value    =>'ST_PPTN_R'
        );
        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
            job_name          =>'peace_sj_his.JOB_PPTN',
            argument_position =>2,
            argument_value    =>'TM'
        );
        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
            job_name          =>'peace_sj_his.JOB_PPTN',
            argument_position =>3,
            argument_value    =>'STCD'
        );
    end;
    /
    ----Job管理-----------------------------------------------------------------------

    /* 禁用Job */
    exec dbms_scheduler.disable('JOBTEST');
    /* 执行Job */
    exec dbms_scheduler.run_job('JOBTEST');
    /* 停止Job */exec dbms_scheduler.stop_job('JOBTEST');/* 删除Job */exec dbms_scheduler.drop_job('JOBTEST');

  • 相关阅读:
    ModSecurity for Nginx
    一些好用的nginx第三方模块
    ModSecurity--web应用防火墙
    mycat表拆分操作教程
    .NET解析HTML库集合
    MySQL分库分表
    Redis配置文件参数说明
    redis优化优秀文选
    MySQL订单分库分表多维度查询
    每秒处理10万订单乐视集团支付架构
  • 原文地址:https://www.cnblogs.com/djrLog/p/4566152.html
Copyright © 2011-2022 走看看