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;