zoukankan      html  css  js  c++  java
  • 11g_job执行带参数的procedure

    现有一个参数为date类型的存储:  
    create or replace procedure t_pro(t_var in date)  
    as  
    begin  
         dbms_output.put_line(TO_CHAR(T_VAR,'YYYY'));  
         --dbms_output.put_line(T_VAR);  
    end;   

    job的实现代码为:

    begin  
        dbms_scheduler.create_job(  
            job_name => 'FFFF',  
            job_type => 'STORED_PROCEDURE',                 //表示该job执行的是一个存储过程类型
            job_action => '"Schema"."Procedure"',           //表示执行的是哪一个存储过程(说白了就是存储的名字),该存储过程不能有输入输出参数和输出参数。
            number_of_arguments => 1,                       //该job的执行程序的参数个数为 1
            repeat_interval => 'FREQ=DAILY;INTERVAL=3',     //表示每天的3点为执行该job的时间
            enabled => FALSE                                //表示是否启用该job,注意大小写
            );   
    end;  

    job定义完成后,就要给该job的参数设定值了:

    begin  
        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (             
            job_name => 'FFFF',                       
            argument_position => 1,                                                     
            argument_value => SYSDATE  
            );     
    end;  

    参数 argument_position => 1 表示的是 该job的参数的位置,如果job中参数有多个,写为2,3,4....依次递增1。注意:如有多个参数需要制定需要这样写

    begin  
        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (             
            job_name => 'FFFF',                       
            argument_position => 1,                                                     
            argument_value => SYSDATE  
            );     
            DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (             
            job_name => 'FFFF',                       
            argument_position => 2,                                                     
            argument_value => val2  
            );    
            DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (             
            job_name => 'FFFF',                       
            argument_position => 3,                                                     
            argument_value => val3  
            );   
            ......  
    end;   

    job的参数设置,支持varchar2和date类型参数

     
    启用job和执行job:
    EXEC DBMS_SCHEDULER.ENABLE('FFFF');  
    EXEC DBMS_SCHEDULER.RUN_JOB('FFFF');  
  • 相关阅读:
    高位前缀和,求他的子集的和https://ac.nowcoder.com/acm/contest/4784/A
    Codeforces Global Round 7 E. Bombs
    高精度,乘法加法
    2018-ICPC-焦作区预赛
    状压dp,区间dp,矩阵快速幂
    树状数组,适用于单点修改,区间查询
    离散化函数
    带修莫队模版
    树链剖分 https://www.luogu.com.cn/problem/P3384
    HDU 1016 Prime Ring Problem【DFS】
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5231863.html
Copyright © 2011-2022 走看看