人大金仓数据库KingbaseES --存储过程的inout参数

关键字:

In,out,inout; 、人大金仓

参数

  1. 概述

参数是一种向程序单元输入和输出数据的机制,存储过程可以接收多个参数

参数模式分类:

IN参数:输入参数,只能接收参数,不能修改

OUT参数:输出参数,用于输出值,会忽略传入的值,可修改并将参数值传递到当前存储过程以外的环境中

INOUT参数:兼容以上两种特性,能接收传入的实参值,在子程序内可修改,也可以输出

in参数

KES在兼容Oracle的inout参数中,对in参数进行了增强处理,允许带有in参数的存储过程进行赋值创建。

(1)不赋值创建

\set SQLTERM /

CREATE OR REPLACE PROCEDURE proc_in(p1 in number)

is

begin

dbms_output.put_line(p1);

end;

/

\set SQLTERM /

DECLARE

test number := 1;

begin

proc_in(test);

dbms_output.put_line(test);

end;

/

call proc_out(50);

(2)赋值创建

\set SQLTERM /

CREATE OR REPLACE PROCEDURE proc_in(p1 in number)

is

begin

dbms_output.put_line(p1);

p1:=29;

dbms_output.put_line(p1);

end;

/

call proc_in(50);

/

(3)Oracle环境下为带有in的参数的存储过程赋值,在创建时会将会报错

out参数

out参数,在输出结果时会忽略输入的值,输出了一个空值和和值1。

\set SQLTERM /

CREATE OR REPLACE PROCEDURE proc_out(p1 out number)

is

begin

dbms_output.put_line(p1);

p1:=1;

end;

/

\set SQLTERM /

DECLARE

test number := 1;

begin

proc_out(test);

dbms_output.put_line(test);

end;

/

inout参数

带有inout参数的存储过程在调用时参数需要使用变量值。

\set SQLTERM /

CREATE OR REPLACE PROCEDURE proc_inout(p1 inout number)

as

BEGIN

dbms_output.put_line(p1);

p1:=100;

end;

/

\set SQLTERM /

DECLARE

test number := 1;

begin

proc_inout(test);

dbms_output.put_line(test);

end;

/

参考资料

《KingbaseES_PLSQL过程语言手册》

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值