• 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');  
  • 相关阅读:
    Java正则表达式入门1
    JAVA中正则表达式总结
    Java正则表达式入门
    java String.valueOf()的作用
    【HDOJ】3601 Coach Yehr’s punishment
    【HDOJ】4601 Letter Tree
    【HDOJ】3686 Traffic Real Time Query System
    【HDOJ】5296 Annoying problem
    【HDOJ】3553 Just a String
    【HDOJ】4426 Palindromic Substring
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5231863.html
Copyright © 2020-2023  润新知