WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer认证考试 735 准备,第1部分

 2010-02-16 14:59:34 来源:WEB开发网   
核心提示:DEFAULT 值 – 如果没有指定,在声明时将赋值为 NULL,DB2 9.5 SQL Procedure Developer认证考试 735 准备,第1部分(2),下面是变量声明的一些例子:DECLARE v_salary DEC(9,2) DEFAULT 0.0;DECLARE v_status ch

DEFAULT 值 – 如果没有指定,在声明时将赋值为 NULL。

下面是变量声明的一些例子:

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;

请注意,从 DB2 version 9.5 开始才支持在一个DECLARE语句中声明多个相同数据类型的变量。

数组数据类型

SQL过程从 9.5 版开始支持数组类型的变量和参数。要定义一个数组类型的变量,需要先在数据库中创建该类型,然后在过程或应用程序中声明它。数组是临时的值,可以在存储过程和应用程序中操纵它,但是不能将它存储到表中。

DB2 支持以下创建数组数据类型的语法:

清单 2. 创建数组数据类型的语法

>>-CREATE TYPE—array-type-name--AS--| data-type |--ARRAY--[---------->
 .-2147483647-------.
>--+------------------+--]-------------------------------------><
 '-integer-constant-'

数组类型的名称应该用模式加以限定,并且在当前服务器上应该是惟一的。LONG VARCHAR、LONG VARGRPAHIC、XML 和用户定义类型不能作为数组元素的数据类型。

下面是数组类型的例子:

CREATE TYPE numbers as INTEGER ARRAY[100];
CREATE TYPE names as VARCHAR(30) ARRAY[];
CREATE TYPE MYSCHEMA.totalcomp as DECIMAL(12,2) ARRAY[];

请注意,整数 “constant” 指定数组的最大基数,它是可选的。数组元素可以通过 ARRAY-VARIABLE(subindex) 来引用,其中 subindex 必须介于1 到数组的基数之间。

现在可以在SQL过程中使用这个数据类型:

清单 3. 在过程中使用数组数据类型

CREATE PROCEDURE PROC_VARRAY_test (out mynames names)
BEGIN
DECLARE v_pnumb numbers;
SET v_pnumb = ARRAY[1,2,3,5,7,11];
SET mynames(1) =’MARINA’;

END

DB2 支持一些操作数组的方法。例如,函数 CARDINALITY(myarray) 返回一个数组中元素的个数。

赋值

SQL PL提供了SET语句来为变量和数组元素赋值。

下面是一个SET语句的简化的语法:

SET variable_name = value/expression/NULL;

这个变量名可以是一个本地变量、全局变量或数组元素的名称。

下面是一些例子:

清单 4. 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

上一页  1 2 3 4 5 6 7  下一页

Tags:DB SQL Procedure

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接