暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

GaussDB SQL语法进阶—存储过程参数

存储过程参数

  • 存储过程的参数用在存储过程的定义,共有三种参数类型:IN,OUT,INOUT;
    • IN 输入参数:表示调用者向过程传入值;
    • OUT 输出参数:表示过程向调用者传出值(可以返回多个值);
    • INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值;

存储过程参数——in

# 创建存储过程 delimiter // create procedure in_param(in p_in int) begin select p_in; set p_in=2; select p_in; end // delimiter; # 设置变量 set @p_in=1; # 调用存储过程 call in_param(@p_in); # 查看变量值 select @p_in;
-- 调用存储过程结果 p_in 1 p_in 2 -- 查看变量值结果 @p_in 1 p_in在存储过程中被修改,但并不影响@p_in的值,因为前者为局部变量,后者为全局变量;

存储过程参数——out

# 创建存储过程 delimiter // create procedure out_param(p_out int) begin select p_out; set p_out=2; select p_out; end // delimiter ; # 设置变量 set @p_out=1; # 调用存储过程 call out_param(@p_out); # 查看变量值 select @p_out;
-- 调用存储过程结果 p_out NULL -- 因为out是向调用者输出参数,不接收输入的参数,所以存储过程里面的p_out为null p_out 2 -- 查看变量值结果 @p_out 2 -- 调用了out_param存储过程,输出参数,改变了p_out变量的值

存储过程参数——inout

delimiter // create procedure inout_param(inout p_inout int) begin select p_inout; set p_inout=2; select p_inout; end // delimiter ; # 设置变量 set @p_inout=1; # 调用存储过程 call inout_param(@p_inout); # 查看变量值 select @p_inout;
-- 调用存储过程结果 p_inout 1 p_inout 2 -- 查看变量值结果 @p_inout 2 # 调用了inout_param存储过程,接受了输入的参数,也输出参数,改变了变量;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论