(3) 非原子(non-atomic)类型复合语句可以嵌套在原子(atomic)语句中。
2.3 变量和赋值
1、声明变量
对变量进行声明的一般格式为:
DECLARE var_name <datatype> [ DEFAULT value];
如果在[DEFAULT value]选项中没有指定具体值,缺省值为 NLL(空)。
以下是声明各种变量的示例:
DECLARE temp1 SMALLINT DEFAULT 0;
DECLARE temp2 INTEGER DEFAULT 10;
DECLARE temp3 DECIMAL(10,2) DEFAULT 100.10;
DECLARE temp4 REAL DEFAULT 10.1;
DECLARE temp5 DOUBLE DEFAULT 10000.1001;
DECLARE temp6 BIGINT DEFAULT 10000;
DECLARE temp7 CHAR(10) DEFAULT 'yes';
DECLARE temp8 VARCHAR(10) DEFAULT 'hello';
DECLARE temp9 DATE DEFAULT '1998-12-25';
DECLARE temp10 TIME DEFAULT '1:50 PM';
DECLARE temp11 TIMESTAMP DEFAULT '2001-01-05-12.00.00';
DECLARE temp12 CLOB(2G);
DECLARE temp13 BLOB(2G);
2、赋值
以下是赋值语句的几个示例:
SET total = 100;
Same as VALUES(100) INTO total;
SET total = NULL;
SET total = (select sum(c1) from T1);
SET sch = CURRENT SCHEMA;
3、变量的有效范围
在下面的例子中,同名变量 a 有三种不同的意义:
lab1:BEGIN
DECLARE a INT DEFAULT 100;
BEGIN
DECLARE a INT DEFAULT 200;
SET a = a + lab1.a;
UPDATE T1 SET b = b * 1.1 WHERE b = a; -- a应该是字段名!