DB2存储过程——变量赋值DECLARE声明变量
march是什么意思SQL 过程中的局部变量⽀持允许您在 SQL 过程逻辑的⽀持下指定和检索值。
SQL 过程中的变量通过 DECLARE 语句定义。
可使⽤ SET 语句或 SELECT INTO 语句将值指定给变量,也可在声明变量时将其指定为缺省值。可对变量指定字⾯值、表达式、查询结果和专⽤寄存器值。
可将变量值指定给 SQL 过程参数或 SQL 过程中的其他变量,也可在例程内执⾏的 SQL 语句中将变量值作为参数引⽤。
以下⽰例演⽰指定和检索变量值的各种⽅法。
CREATE PROCEDURE proc_vars()
SPECIFIC proc_vars
LANGUAGE SQL
beverageBEGIN
DECLARE v_rcount INTEGER;
DECLARE v_max DECIMAL (9,2);
重庆技能培训
DECLARE v_adate, v_another DATE;
minarsDECLARE v_total INTEGER DEFAULT0; -- (1)
punto
dominicDECLARE v_rowsChanged BOOLEAN DEFAULT FALSE; -- (2)
道具英文
SET v_total = v_total +1; -- (3)
安徽省2012年高考分数线SELECT MAX(salary) -- (4)
INTO v_max FROM employee;
VALUES CURRENT_DATE INTO v_date; -- (5)
SELECT CURRENT DATE, CURRENT DATE -- (6)
新加坡私立学校INTO v_adate, v_another
FROM SYSIBM.SYSDUMMY1;
DELETE FROM T;
GET DIAGNOSTICS v_rcount = ROW_COUNT; -- (7)
IF v_rcount >0THEN-- (8)
SET is_done = TRUE;
END IF;
END
声明变量时,可按⾏ (1) 中所⽰使⽤ DEFAULT ⼦句指定缺省值。⾏ (2) 显⽰布尔数据类型的变量的声明,该变量的缺省值为 FALSE。⾏ (3) 显⽰可⽤于指定单个变量值的 SET 语句。还可按⾏ (4) 中所⽰,通过将 SELECT 或 FETCH 语句与 INTO ⼦句配合执⾏来设置变量。⾏ (5) 和⾏ (6) 显⽰如何使⽤ VALUES INTO 语句来对函数或专⽤寄存器求值以及如何将该值指定给⼀个变量或多个变量。
还可将 GET DIAGNOSTICS 语句的结果指定给变量。可使⽤ GET DIAGNOSTICS 控制受影响⾏数(
kampucheaUDPDATE 对应 UPDATE 语句,DELETE 对应 DELETE 语句)或获取刚刚执⾏的SQL 语句的返回状态。⾏ (7) 显⽰如何将刚才执⾏的 DELETE 语句修改的⾏数指定给变量。
⾏ (8) 演⽰如何使⽤逻辑块来确定要指定给变量的值。在此情况下,如果在先前执⾏ DELETE 语句和 GET DIAGNOSTICS 语句(导致对变量 v_rcount 指定⼤于零的值)时⾏数发⽣了更改,那么会对变量 is_done is 指定值 TRUE。