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');  
  • 相关阅读:
    let 和 const 命令
    字符串和数组之间相互转换
    angularjs 添加拦截器
    js判断数组是否包含指定元素的方法
    angularjs ng-include
    requirejs学习 关于requirejs的一些参数问题
    ngDialog 点击窗口以外不允许关闭弹窗
    jQuery Jcrop 图像裁剪
    Javascript模块化编程(三):require.js的用法
    angular.bootstrap手动加载angularjs模块
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5231863.html
Copyright © 2011-2022 走看看