达梦变量赋值

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;
相关推荐
-SGlow-3 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
明月5664 小时前
Oracle 误删数据恢复
数据库·oracle
♡喜欢做梦5 小时前
【MySQL】深入浅出事务:保证数据一致性的核心武器
数据库·mysql
遇见你的雩风5 小时前
MySQL的认识与基本操作
数据库·mysql
dblens 数据库管理和开发工具5 小时前
MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
数据库·mysql·dblens·dblens mysql·数据库连接管理
weixin_419658315 小时前
MySQL的基础操作
数据库·mysql
不辉放弃6 小时前
ZooKeeper 是什么?
数据库·大数据开发
Goona_7 小时前
拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
数据库·python·sql·excel·pyqt
程序员编程指南7 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
幼儿园老大*9 小时前
数据中心-时序数据库InfluxDB
数据库·时序数据库