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');  
  • 相关阅读:
    ASP.NET自动给URL加上超链接
    EXCEL隔行相加
    数据库 行列相互转化
    SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型
    C#中,Dictionary的使用方法
    NET技术.NET各大网站编程技术网址
    多表查询不同数据库服务器上的表
    关于quotename的用法
    SQL Server2005 异常处理机制(Begin try Begin Catch)
    C#异步调用与线程总结
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5231863.html
Copyright © 2011-2022 走看看