存储过程——局部变量
- 作用范围在begin到end语句块之间。局部变量声明一定要放在存储过程体的开始。
- 声明变量
declare variable_name [,variable_name...] datatype [default value];
-- datatype为GaussDB(for MySQL)的数据类型
-- 示例
declare v_num number(8,2) default 9.95;
declare v_varchar varchar(255) default 'welcome to GaussDB';
- 变量赋值
set 变量名=表达式值
存储过程——用户变量
- 基于会话变量实现的,可以暂存值,并传递给同一连接里的下一条sql使用的变量。当客户端连接退出时,变量会被释放;
- 声明变量以"@“开始,形式为”@变量名";
- 变量赋值:可以使用set或select
set @变量名=表达式值
select @变量名:=表达式值;
-- 示例
select @x:='Hello World';
set @y='Goodbye My Friend';
set @z=1+2+3;
- 在存储过程中使用用户变量
delimiter //
create procedure HelloWorld()
begin
select concat(@hello,'World');
end
//
delimiter ;
set @hello='Hello'; call HelloWorld();
-- 结果
concat(@hello,'World')
'Hello World'
- 在存储过程间传递全局范围的用户变量
create procedure proc1()
set @para_procedure='p1';
create procedure proc2()
select concat('the parameter of procedure is ',@para_procedure);
call proc1();
call proc2();
-- 结果
concat('the parameter of procedure is ',@para_procedure)
'the parameter of procedure is p1'
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




