当前位置:首页 » 存储配置 » oracle存储过程输出参数

oracle存储过程输出参数

发布时间: 2023-10-17 04:53:58

㈠ 关于调用带输出参数的oracle存储过程

可以通过以下方式来进行带参数存储过程执行。

sql">SQL>createorreplaceproceresp_pro10
2(spnoinnumber,spnameoutvarchar2)is
3begin
4select'ename'intospnamefromal;
5end;
6/

过程已创建。

SQL>setserveroutputon
SQL>DECLARE
2spnonumber;
3spnamevarchar2(10);
4BEGIN
5sp_pro10(spno,spname);
6
7dbms_output.put_line(spname);
8END;
9/
ename

PL/SQL过程已成功完成。

㈡ oracle存储过程如何输出信息

可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。

编写存储过程:

create or replace procere test_pro(in_num number)

as

M number;

begin

M := in_num;

if 0 < M then

dbms_output.put_line('输出SQL语句1');

elsif M < 3 then

dbms_output.put_line('输出SQL语句2');

else

dbms_output.put_line('nothing');

end if;

end;

(2)oracle存储过程输出参数扩展阅读;

存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等。

㈢ oracle 存储过程 out参数的值怎么使用

输出模式的参数,用于输出值,会忽略传入的值。在子程序内部可以对其进行修改。
输出:子程序执行完毕后,out模式参数最终的值会赋值给调用时对应的<实参变量>。
注意:out模式参数的调用,必须通过变量。

--测试out模式的存储过程
CREATEORREPLACEPROCEDUREpro(p3OUTINT)ASBEGIN
println(p3);--p3会忽略传入的值
p3:=33;--设定存储过程调用后的值
END;

DECLARE
var3INT:=30;--声明一个变量用于设定存储过程调用前的值BEGIN--
pro(30);--error,20对应过程中out模式的参数,out会输出结果给调用的实参,但是20不能作为赋值目标
println('存储过程调用前的值:'||var3);
pro(var3);--调用pro存储过程重新赋值;调用过程,如果过程形参是out模式,必须采用变量实参
println('存储过程调用后的值:'||var3);
END;

㈣ oracle 中用什么命令执行一个带参数的存储过程

具体如下:

1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。

㈤ oracle带参(传入,传出)的存储过程怎么执行

1、新建存储过程,Create or ReplaceProcere CHK_SYS_EMP 检查系统工号。

㈥ ORACLE 获取包中存储过程或函数的参数

该包用于  动态获取包中存储过程或者函数的参数。

create or replace package SF_GET_ARGUMENTS_PKG is

  -- Author  : SANFU

  -- Created : 2020/7/22 14:40:49

  -- Purpose : 动态获取包中存储过程或者函数的参数

  PROCEDURE get_arguments(p_pkg_name in VARCHAR2, p_obj_name in VARCHAR2);

  PROCEDURE pf_get_arguments(p_pkg_name in VARCHAR2,

         茄脊差                   p_obj_name in VARCHAR2);

end SF_GET_ARGUMENTS_PKG;

/

create or replace package body SF_GET_ARGUMENTS_PKG is

  /*============================================*

  * Author  : CZH

  * Created  : 2020-07-22 15:00:12

  * ALERTER  :

  * ALERTER_TIME  :

  * Purpose  :

  * Arg_number  : 2

  * P_PKG_NAME :包名

  * P_OBJ_NAME :存储过程名或函数名

  *============================================*/

  PROCEDURE get_arguments(p_pkg_name in VARCHAR2, p_obj_name in VARCHAR2) IS

    v_pkg_name  varchar2(100) := upper(p_pkg_name);

    v_obj_name  varchar2(100) := upper(p_obj_name);

    v_arg_number NUMBER;

    cursor data_cur is

      select t.PACKAGE_NAME,

            t.OBJECT_NAME,

            t.ARGUMENT_NAME,

            t.IN_OUT,

            count(t.ARGUMENT_NAME) over(PARTITION BY t.OBJECT_NAME) arg_number,

            row_number() over(partition by t.OBJECT_NAME order by t.POSITION asc) rank_position

   颤皮     from sys.user_arguments t

      where t.PACKAGE_NAME = v_pkg_name

        and t.OBJECT_NAME = v_obj_name

        and t.POSITION <> 0;

  begin

    select count(1)

      into v_arg_number

      from sys.user_arguments t

    where t.PACKAGE_NAME = v_pkg_name

      and t.OBJECT_NAME = v_obj_name

      and t.POSITION <野亏> 0;

    dbms_output.put_line('/*============================================*');

    dbms_output.put_line(' * Author  : SANFU');

    dbms_output.put_line(' * Created  : ' ||

                        TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));

    dbms_output.put_line(' * ALERTER  : ');

    dbms_output.put_line(' * ALERTER_TIME  : ');

    dbms_output.put_line(' * Purpose  : ');

    dbms_output.put_line(' * Obj_Name    : ' || v_obj_name);

    dbms_output.put_line(' * Arg_Number  : ' || v_arg_number);

    for rec in data_cur loop

      dbms_output.put_line(' * ' || rec.ARGUMENT_NAME || ' :');

    end loop;

    dbms_output.put_line(' *============================================*/');

  end get_arguments;

  --获取参数

  PROCEDURE pf_get_arguments(p_pkg_name in VARCHAR2,

                            p_obj_name in VARCHAR2) IS

    v_pkg_name varchar2(100) := upper(p_pkg_name);

    v_obj_name varchar2(100) := upper(p_obj_name);

    v_attr    varchar2(100);

    cursor data_cur is

      select t.PACKAGE_NAME,

            t.OBJECT_NAME,

            t.ARGUMENT_NAME,

            t.IN_OUT,

            count(t.ARGUMENT_NAME) over(PARTITION BY t.OBJECT_NAME) arg_number,

            row_number() over(partition by t.OBJECT_NAME order by t.POSITION asc) rank_position

        from sys.user_arguments t

      where t.PACKAGE_NAME = v_pkg_name

        and t.OBJECT_NAME = v_obj_name

        and t.POSITION <> 0;

  begin

    dbms_output.put_line(v_pkg_name || '.' || v_obj_name || '(');

    for rec in data_cur loop

      if rec.in_out = 'IN' then

        v_attr := '';

      elsif rec.in_out = 'OUT' then

        v_attr := '';

      elsif rec.in_out = 'IN/OUT' then

        v_attr := '';

      end if;

      if data_cur%ROWCOUNT = rec.arg_number then

        dbms_output.put_line(lower(rec.ARGUMENT_NAME) || '        =>' ||

                            '  ' || v_attr || lower(rec.ARGUMENT_NAME));

      else

        dbms_output.put_line(lower(rec.ARGUMENT_NAME) || '        =>' ||

                            '  ' || v_attr || lower(rec.ARGUMENT_NAME) || ',');

      end if;

    end loop;

    dbms_output.put_line(');');

  end pf_get_arguments;

end SF_GET_ARGUMENTS_PKG;

/

㈦ plsql调用oracle存储过程有输入参数和输出参数 sql语句怎么写如题 谢谢了

假设第一个参数为in参数,每二个参数为out参数:
variable
x
number;
//定义一个绑定变量
exec
过程(1,:x)
//1为输入参数,x为输出参数,过程执行后x就得到输出值了。
print
x
//看结果

热点内容
墙加密区域 发布:2024-11-30 02:33:32 浏览:630
idrac中怎么控制服务器 发布:2024-11-30 02:18:27 浏览:910
蜘蛛矿池服务器地址 发布:2024-11-30 02:13:57 浏览:169
网易云访问记录 发布:2024-11-30 02:13:17 浏览:376
java的数据类型有哪些 发布:2024-11-30 02:12:42 浏览:546
win8访问win7共享 发布:2024-11-30 02:08:33 浏览:340
编程录入错误 发布:2024-11-30 02:01:58 浏览:733
相机存储卡无法读取 发布:2024-11-30 02:00:15 浏览:772
美国访问学者中介 发布:2024-11-30 01:49:47 浏览:491
手机版我的世界网易服务器地铁 发布:2024-11-30 01:38:57 浏览:522