WEB开发网
开发学院数据库DB2 DB2 V9.5版本中数据库应用程序移植的改进 阅读

DB2 V9.5版本中数据库应用程序移植的改进

 2008-09-03 16:28:24 来源:WEB开发网   
核心提示: 使用输入和输出数组参数从命令行处理器调用过程, ARRAY 数据类型定义: create TYPE type-name AS data-type ARRAY [integer-constant] 其中:data-type 不支持LONG VARchar, LONG VARGRAPHIC,

使用输入和输出数组参数从命令行处理器调用过程。

ARRAY 数据类型定义:

create TYPE type-name AS data-type ARRAY [integer-constant]

其中:data-type 不支持LONG VARchar, LONG VARGRAPHIC, LOB, XML类型, integer-constant 最大值2147483647

与ARRAY相关的函数:

ARRAY_AGG 将行数据集聚集成数组

UNNEST 将数组数据转成行数据

CARDINALITY 返回数组中的元素号,类型 BIGINT

MAX_CARDINALITY 返回数组中所含的最大元素号,类型 BIGINT

注意,这些函数只用于SQL procedure

select T.PHONE, T.ID, T.INDEX FROM UNNEST(PHONES, IDS)
WITH ORDINALITY AS T(PHONE, ID, INDEX)
ORDER BY T.INDEX
Example 1

这个例子包含2个存储过程, sum 和 main. 存储过程 main 建立一个含有6个元素(integer)的数组。传递这个数组给存储过程sum, 计算出所有元素值的和并返回给调用存储过程 main. 存储过程 sum 说明了array subindexing 和CARDINALITY 函数的用法.

create type intArray as integer array[100] @
create procedure sum(in numList intArray, out total integer)
begin
declare i, n integer;
set n = CARDINALITY(numList);
set i = 1;
set total = 0;
while (i < n) do
set total = total + numList[i];
set i = i + 1;
end while;
end @
create procedure main(out total integer)
begin
declare numList intArray;
set numList = ARRAY[1,2,3,4,5,6];
call sum(numList, total);
end @
Example 2

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

Tags:DB 数据库

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