达梦变量赋值

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;
相关推荐
yumgpkpm8 小时前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境 查询2100w行 hive 查询策略
数据库·数据仓库·hive·hadoop·flink·mapreduce·big data
web安全工具库9 小时前
Makefile 模式规则精讲:从 %.o: %.c 到静态模式规则的终极自动化
linux·运维·c语言·开发语言·数据库·自动化
盒马coding16 小时前
第19节-非规范化数据类型-Composite-types
数据库·postgresql
-雷阵雨-17 小时前
MySQL——桥梁JDBC
数据库·mysql·oracle
亿坊电商17 小时前
在PHP框架里如何进行数据库连接?
数据库·oracle·php
满昕欢喜17 小时前
SQL Server从入门到项目实践(超值版)读书笔记 28
数据库·sql·sqlserver
楚韵天工17 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物
李白你好19 小时前
一款专业的多数据库安全评估工具,支持 **PostgreSQL、MySQL、Redis、MSSQL** 等多种数据库的后渗透操作
数据库·mysql·postgresql