达梦变量赋值

1、直接赋值

sql 复制代码
DECLARE
	--定义变量
	id int;
	
	--定义变量,并赋初始值
	name varchar(20) = 'initValue';
BEGIN
	--直接赋值,方式1
	set id = 1;
	
	--直接赋值,方式2
	name := 'currentValue';
	
	select id as 编号, name 名称;
end;

2、查询赋值

sql 复制代码
DECLARE
	--定义变量
	userid varchar(20);
	
	--定义变量,并赋初始值
	username varchar(20) = 'initValue';
BEGIN
	--查询赋值
	select emp_ID, emp_Name into userid, username from EMPLOYEE where EMP_ID = 'manager';
	
	select userid as 编号, username 名称;
end;

SELECT...INTO 语句要求查询只能返回一条记录,执行时可能会发生两种例外情况:

没有查询到满足条件的记录,系统返回预定义异常 NO_DATA_FOUND;

存在多行满足条件的记录,系统返回预定义异常 TOO_MANY_ROWS;

对于这样的异常必须做出相应处理,否则会影响 DMSQL 程序的正确执行。

处理 NO_DATA_FOUND

sql 复制代码
DECLARE
	--定义变量
	userid varchar(20);
	
	--定义变量,并赋初始值
	username varchar(20) = 'initValue';
BEGIN
	--查询赋值
	begin
		select emp_ID, emp_Name into userid, username from EMPLOYEE where EMP_ID = '';
	exception
		--对 NO_DATA_FOUND 异常必须做出相应处理,否则会影响 DMSQL 程序的正确执行。
 		when NO_DATA_FOUND then
 		begin
 			set userid = 'NO_DATA_FOUND';
 		end;
	end;
	
	select userid as 编号, username 名称;
end;

处理 TOO_MANY_ROWS

sql 复制代码
DECLARE
	--定义变量
	userid varchar(20);
	
	--定义变量,并赋初始值
	username varchar(20) = 'initValue';
BEGIN
	--查询赋值
	begin
		select emp_ID, emp_Name into userid, username from EMPLOYEE;
	exception
		--对 TOO_MANY_ROWS 异常必须做出相应处理,否则会影响 DMSQL 程序的正确执行。
		when TOO_MANY_ROWS then
		begin
			set userid = 'TOO_MANY_ROWS';
		end;
	end;
	
	select userid as 编号, username 名称;
end;
相关推荐
qianshang23314 小时前
SQL注入学习总结
网络·数据库·渗透
what丶k14 小时前
深入解析Redis数据持久化:RBD机制原理、实操与生产最佳实践
数据库·redis·缓存
瀚高PG实验室15 小时前
通过数据库日志获取数据库中的慢SQL
数据库·sql·瀚高数据库
Hgfdsaqwr15 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
invicinble15 小时前
对于Mysql深入理解
数据库·mysql
阳光九叶草LXGZXJ16 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
Hgfdsaqwr16 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
s1hiyu16 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
2301_7634724617 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
熊文豪17 小时前
金仓数据库如何以“多模融合“重塑文档数据库新范式
数据库·金仓数据库·电科金仓·mongodb迁移