1、直接赋值
sql">DECLARE--定义变量id int;--定义变量,并赋初始值name varchar(20) = 'initValue';
BEGIN--直接赋值,方式1set id = 1;--直接赋值,方式2name := '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--查询赋值beginselect emp_ID, emp_Name into userid, username from EMPLOYEE where EMP_ID = '';exception--对 NO_DATA_FOUND 异常必须做出相应处理,否则会影响 DMSQL 程序的正确执行。when NO_DATA_FOUND thenbeginset userid = 'NO_DATA_FOUND';end;end;select userid as 编号, username 名称;
end;
处理 TOO_MANY_ROWS
sql">DECLARE--定义变量userid varchar(20);--定义变量,并赋初始值username varchar(20) = 'initValue';
BEGIN--查询赋值beginselect emp_ID, emp_Name into userid, username from EMPLOYEE;exception--对 TOO_MANY_ROWS 异常必须做出相应处理,否则会影响 DMSQL 程序的正确执行。when TOO_MANY_ROWS thenbeginset userid = 'TOO_MANY_ROWS';end;end;select userid as 编号, username 名称;
end;