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 the array v_numb SET v_numb = ARRAY[1,2,3,4]; -- fill up array with values 为变量赋值的其他方法有: VALUES INTO SELECT (or FETCH) INTO VALUE 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: BEGIN VALUES CURRENT DATE INTO cdate;-- VALUES CURRENT TIME INTO ctime;-- END P1 执行后,该过程返回: Name Input Output cdate 2008-08-28 ctime 13:47:41

posted on 2011-10-31 17:53  青紫蓝兔  阅读(508)  评论(0编辑  收藏  举报

导航