DB2存储过程学习
1.变量声明 SQL 过程允许使用本地变量赋予和获取 SQL 值,以支持所有 SQL 逻辑。在 SQL 过程中,在代码中使用本地变量之前要先进行声明。下面是变量声明的一些例子:DECLARE v_salary DEC(9,2) DEFAULT 0.0; DECLARE v_status char(3) DEFAULT ‘YES’; DECLARE v_descrition VARCHAR(80); DECLARE v1, v2 INT DEFAULT 0; DEFAULT 值 – 如果没有指定,在声明时将赋值为 NULL。2.赋值 SQL PL 提供了 SET 语句来为变量和数组元素赋值。下面是一个 SET 语句的简化的语法:SET variable_name = value/expression/NULL;这个变量名可以是一个本地变量、全局变量或数组元素的名称。SET 语句的例子 SET var1 = 10; SET total = (select sum(c1) from T1);SET var2 = POSSTR(‘MYTEST’,’TEST’);SET v_numb(10) = 20;-- assign value of 20 to the 10th element of thearray v_numbSET v_numb = ARRAY;-- fill up array with values为变量赋值的其他方法有:VALUES INTOSELECT (or FETCH) INTOVALUE INTO 和 SELECT INTO 的例子 VALUES 2 INTO v1;VALUES ‘TEST’ INTO var2;SELECT SUM(c1) INTO var1 FROM T1;SELECT POSSTR(‘MYTEST’,’TEST’) INTO v1 FROM SYSIBM.SYSDUMMY1;3.专用寄存器 专用寄存器(special register)是 DBA 定义的一个存储块,供一个应用程序过程使用。寄存器中的值可以在 SQL 语句或 SQL PL 语句中访问和引用。在 IBM DB2 database for Linux, UNIX, and Windows Information Center 可以找到所有的专用寄存器。最常用的专用寄存器有:CURRENT DATE CURRENT TIME CURRENT TIMESTAMP CURRENT USER CURRENT PATH 所有这些寄存器都可以通过在名称中加下划线来引用。例如,CURRENT_DATE。返回当前日期和时间的过程 CREATE PROCEDURE get_datetime (out cdate date, out ctime time )P1: BEGINVALUES CURRENT DATE INTO cdate;--VALUES CURRENT TIME INTO ctime;--END P1执行后,该过程返回:Name Input Outputcdate 2008-08-28ctime 13:47:41
页:
[1]