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_action => 'T_PRO',
    		number_of_arguments => 1, 
    		repeat_interval => 'FREQ=DAILY;INTERVAL=3', 
    	    enabled => FALSE
    		); 
    end;
    /

        其中参数 job_type => 'STORED_PROCEDURE' 表现该job执行的是一个存储进程类型,参数 job_action => 'T_PRO' 表现执行的是个一哪存储进程(说白了就是存储的名字)以下为官方档文对该参数释解:

        The action is the name of the stored procedure. You have to specify the schema if the procedure resides in another schema than the job. If case sensitivity is needed, enclose the schema name and the store procedure name in double quotes. For example, job_action_action=>'"Schema"."Procedure"'.PL/SQL procedures with INOUT or OUT arguments are not supported as job_action when the job or program type is STORED_PROCEDURE.
    官方档文要求 用户名.存储名字 这样写!而且存储进程中有 输入输出和输出参数时,job_type的值都不能为 STORED_PROCEDURE。当然没有了job_type参数,job_acton也不被持支了!

        参数 number_of_arguments => 1 代表该job的执行程序(本例就是T_PRO)的参数个数(T_PRO的个数为 1)。该参数必要须设置!起官方档文的释解为:This attribute specifies the number of arguments that the job expects. The range is 0-255, with the default being 0.

        参数 repeat_interval => 'FREQ=DAILY;INTERVAL=3'表现天天的3点为执行该job的时光!该参数怎么设置请考参官方档文

        参数 enabled => FALSE 表现否是用启该job。这里要设置为FALSE ,注意大小写!

        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;
    /

        参数 argument_value => SYSDATE 表现你要传入的值的定义。该参数官网释解为:

        

    argument_value

    The new value to be set for the program argument. To set a non-VARCHAR value, use the SET_JOB_ANYDATA_VALUE procedure.

    给参数设定一个新的值,要设定一个非字符的值,应用SET_JOB_ANYDATA_VALUE 存储!.

        

        SET_JOB_ARGUMENT_VALUE

        

        can be used to set arguments of lightweight jobs but only if the argument is of type

        

        VARCHAR2

        

        .

        该存储给轻量级job的参数设置一个值而且该参数的类型要为 VARCHAR2!

        官网上很确明的告诉我:job的参数设置,只持支varchar2类型的!,但是验实上去却明证能持支date类型参数!!(验证进程续持了2个小时)

        用启job和执行job:

    EXEC DBMS_SCHEDULER.ENABLE('FFFF');
    EXEC DBMS_SCHEDULER.RUN_JOB('FFFF');

        实际上job参数时可以持支date类型的输入参数!!我呆板本版为

    SQL> select VERSION from v$instance;
    
    VERSION
    -----------------
    11.2.0.1.0

        

        

        

        

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

  • 相关阅读:
    Blender文档翻译-Blender库数据的通用属性
    Blender文档翻译-什么是Ghash?
    PythonQt
    QT与Python混合编程经验记录
    WebStorm开发ReactNative过程中导入插件设置智能提示
    原生iOS项目导入ReactNative,各种问题
    关于网易七鱼iOS 端集成
    iOS "_OBJC_CLASS_$_JPUSHService", referenced from: 解决办法
    同时安装使用 两个Xcode切换的一些问题。
    实现一个iOS项目中添加多个target,并制作马甲包。
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3069635.html
Copyright © 2011-2022 走看看