zoukankan      html  css  js  c++  java
  • 动态执行函数

    引用:  https://www.iteye.com/blog/wjhu-1178822

    调用:

    declare
    v_start_runtime date;
    v_datefrom varchar2(15);
    v_dateto varchar2(15);
    v_redoflag number(1);
    v_para1 varchar2(100);
    v_para2 varchar2(100);
    v_errcode number(10);
    v_err varchar2(1000);
    v_errlog varchar2(1000);
    v_res number(10);
    v_run_second number(16,2);
    v_sql varchar2(4000);
    begin
    v_datefrom := '20190902000000';
    v_dateto := '20190902000000';
    v_redoflag := 1;
    v_para1 := '0';
    v_para2 := '0';

    v_sql:='p_thz.fun_TEST_THROW ';
    EXECUTE IMMEDIATE 'begin :0:='||v_sql||'(:1,:2,:3,:4,:5,:6,:7,:8); end;'
    using out v_res,in v_datefrom, in v_dateto, in v_redoflag, in out v_para1,in out v_para2,out v_errcode,out v_err,out v_errlog; --只用using,先写返回值

    commit;

    end;
    /

    定义一个有输入参数输出参数的函数(肯定有返回值),i_para1和i_para2是输入输出参数

    create package p_thz as

    function fun_TEST_THROW
    (
    i_date_from IN VARCHAR2, -- 统计开始时间 YYYYMMDDHH24MISS
    i_date_to IN VARCHAR2, -- 统计结束时间 YYYYMMDDHH24MISS
    i_redo_flag IN NUMBER, -- 是否重做标记(1是重做,0是不重做)
    i_para1 IN OUT VARCHAR2, -- 动态参数1
    i_para2 IN OUT VARCHAR2, -- 动态参数2
    o_proc_code OUT NUMBER, -- 存储过程返回的错误代码
    o_proc_errm OUT VARCHAR2, -- 存储过程返回的错误信息
    o_sql_err_log OUT VARCHAR2 -- 存储过程返回的错误sql语句
    ) RETURN NUMBER;

    end p_thz;

    --有into则using的参数必现只能输入参数,不能有输出参数.
    --无into则using既可以输入参数又可以输出参数了,适合函数,但返回值必现写在using后面第一个.
    --调用函数只能用using不能into.
    --调用存储过程只需要用到using不需要into.
    --调用select语句则into和using可以同时用,先写into再写using.

  • 相关阅读:
    常用设计模式:装饰者模式
    常用数据结构算法 : 堆排序
    常用数据结构算法:二叉树的最近公共祖先
    java网络通信:HTTP协议 之 Sessions与Cookies
    java网络通信:HTTP协议
    常见的设计模式:工厂模式
    Java基础:类加载机制
    一个C++右值引用的问题
    剖析一个用C++写的行情交易系统
    C++ Coroutine简明教程
  • 原文地址:https://www.cnblogs.com/jiangqingfeng/p/11504485.html
Copyright © 2011-2022 走看看