zoukankan      html  css  js  c++  java
  • Oracle存储过程in、out、in out 模式参数

    Oracle存储过程in、out、in out 模式参数

    标签: oracle存储inout参数
     分类:

    1、in模式参数 
    输入模式的参数,用于接收参数,在子程序内部,不能进行修改。默认的参数模式:in。

    --定义打印的存储过程
    CREATE OR REPLACE PROCEDURE println (str VARCHAR)
    AS
    BEGIN
      dbms_output.put_line(str);
      END;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    --定义测试in模式的存储过程
    CREATE OR REPLACE PROCEDURE pro(p1 IN INT,p2 IN INT)--参数的个数、类型可以自定义,但是参数不允许指定长度
    AS
    BEGIN
      println(p1);
      println(p2);
      --p2:=11; --in模式参数不能为其赋值
      END;
    
    --通过语句块调用存储过程
    BEGIN
      pro(10,100);
      END;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这里写图片描述

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

    --测试out模式的存储过程
    CREATE OR REPLACE PROCEDURE pro(p3 OUT INT)
    AS
    BEGIN
      println(p3);--p3会忽略传入的值
      p3:=33;--设定存储过程调用后的值
      END;
    
    DECLARE
    var3 INT :=30;--声明一个变量用于设定存储过程调用前的值
    BEGIN
    -- pro(30); --error,20对应过程中out模式的参数,out会输出结果给调用的实参,但是20不能作为赋值目标
    println('存储过程调用前的值:'||var3);
    pro(var3);--调用pro存储过程重新赋值;调用过程,如果过程形参是out模式,必须采用变量实参
    println('存储过程调用后的值:'||var3);
      END;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    这里写图片描述

    3、in out 模式参数 
    输入输出模式:能接收传入的实参值;在子程序内部可以修改; 可以输出(必须用实参变量调用)

    --测试in out模式的存储过程
    CREATE OR REPLACE PROCEDURE pro(p4 IN OUT INT)
    AS
    BEGIN
      println(p4);
      p4:=44;--in out模式参数的值可以修改
      END;
    
    DECLARE
    var4 INT :=40;--声明一个变量用于设定存储过程调用前的值
    BEGIN
    println('存储过程调用前的值:'||var4);
    pro(var4);--调用pro存储过程重新赋值
    println('存储过程调用后的值:'||var4);
      END;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这里写图片描述

  • 相关阅读:
    思维导图
    网络面经
    2.17 C++ 专项练习 错题复盘
    C++面经
    2.15 C++专项练习 错题复盘
    uboot下读取flash,上传tftp服务器、下载
    Hi3516EV100烧录出厂固件
    用Hi3518EV200板当spi烧录器
    生而为人,我很抱歉!深夜爬虫, 我很抱歉 ,附微信 “ 网抑云” 公众号爬虫教程!
    阿里HR: 你会 Android 实现侧滑菜单-design吗? CN看了,原来这么简单呀!
  • 原文地址:https://www.cnblogs.com/aipan/p/8081264.html
Copyright © 2011-2022 走看看