• 0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job


    --oracle job 定时执行 存储过程
    --建一张测试表
    create table Person(
        name varchar2(50),
        sex varchar2(10)
    );
    /
    --创建测试的存储过程
    create or replace job_procedure(pname in varchar2,psex in varchar2) as
    begin
        insert into Person values(pname,psex);
    end job_procedure;
    /
    --创建一个job任务
    variable jobid number;
    begin
        dbms_job.submit(:jobid,'job_procedure',sysdate,'sysdate+1/1440');--每分钟执行一次 24 * 60 = 1440;
    end;
    /
    --运行job
    begin
        dbms_job.run(:jobid);
    end;
    /
    --删除job
    begin
        dbms_job.remove(:jobid);
    end;
    /
    
    
    ---------------------------------------------------------------------------
    
    --另一种方法    调度
    --建一张测试表
    create table Person(
        name varchar2(50),
        sex varchar2(10)
    );
    /
    --创建测试的存储过程
    create or replace job_procedure(pname in varchar2,psex in varchar2) as
    begin
        insert into Person values(pname,psex);
        submit();--提交
    end job_procedure;
    /
    --创建一个job任务
    begin
    dbms_scheduler.create_job(
        job_name => 'jobname',    
        job_type => 'STORED_PROCEDURE',
        job_action => 'job_procedure',
        start_date => sysdate,
        repeat_interval => 'FREQ=DAILY;INTERVAL=2',
        enabled => TRUE,
        comments =>  'my procedure job !'
    );
    end;
    /
    --执行job
    begin
        dbms_scheduler.run_job(job_name=>'jobname');
    end;
    /
    --删除job
    begin
        dbms_scheduler.dorp_job(job_name=>'jobname');
    end;
    /
    /*
    参数说明:
    job_name: 顾名思义,每个job都必须有一个的名称
    schedule_name: 如果定义了计划,在这里指定计划的名称
    job_type: 目前支持三种类型:
     PL/SQL块: PLSQL_BLOCK,
     存储过程: STORED_PROCEDURE
     外部程序: EXECUTABLE (外部程序可以是一个shell脚本,也可以是操作系统级别的指令).
    job_action: 根据job_type的不同,job_action有不同的含义.
     如果job_type指定的是存储过程,就需要指定存储过程的名字;
     如果job_type指定的是PL/SQL块,就需要输入完整的PL/SQL代码;
     如果job_type指定的外部程序,就需要输入script的名称或者操作系统的指令名
    enabled: 上面已经说过了,指定job创建完毕是否自动激活
    comments: 对于job的简单说明
    
    
    */
    /*
        ----------repeat_interval参数------------
    repeat_interval => 'FREQ=HOURLY; INTERVAL=2'    每隔2小时运行一次job
    
    repeat_interval => 'FREQ=DAILY'        每天运行一次job
    
    repeat_interval => 'FREQ=WEEKLY; BYDAY=MON,WED,FRI"    每周的1,3,5运行job
    
    repeat_interval => 'FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30'    每年的3,6,9,12月的30号运行job
    
    */
    --如有错误,欢迎指出!!!
  • 相关阅读:
    bzoj 3238
    bzoj 3473 后缀自动机多字符串的子串处理方法
    bzoj 2998 第k小字串
    bzoj 3672 利用点分治将CDQ分治推广到树型结构上
    bzoj 3671 贪心
    NOIP模拟题——nan
    NOIP模拟题——kun(栈)
    hduP2586——How far away ?
    DP习题
    NOIP模拟题——来自风平浪静的明天
  • 原文地址:https://www.cnblogs.com/jianyeLee/p/5327041.html
Copyright © 2020-2023  润新知