博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定时执行存储过程
阅读量:5077 次
发布时间:2019-06-12

本文共 2480 字,大约阅读时间需要 8 分钟。

基础

  • 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');

转载于:https://www.cnblogs.com/djrLog/p/4566152.html

你可能感兴趣的文章
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>