数组元素说明
数组元素说明从数组索引指定的数组中返回元素。
- 数组表达式
指定一个SQL变量、SQL参数或数组类型的全局变量,或数组类型参数标记的CAST规范。
- [数组索引 ]
- 用于指定要从数组中提取的元素的数组索引的表达式。 普通数组的数组索引值必须可转换为整数。 数组索引值必须在1到数组基数之间。 关联数组的数组索引值必须可转换为数组类型索引的数据类型。 数组索引值必须代表数组中存在的元素。 如果索引值是一个字符串,且长度超过索引数据类型,则该值将被截断,系统会发出警告,并使用截断后的值继续处理。
数组索引不能为:
- 引用当前日期、当前时间或当前时间戳特殊寄存器的表达式
- 非确定性函数
- 由外部动作定义的功能
- 用MODIFIES SQL DATA定义的功能
- 序列表达式
在EBCDIC代码页中,X'BBBB'通常被视为连接操作符。 因为该字符序列在某些EBCDIC代码页中是右括号字符(']]')对,所以在数组索引表达式中使用时不作为连接运算符处理。
结果的数据类型为在CREATE TYPE (array)语句中为数组指定的数据类型。 如果数组索引为空,或者数组为空,则返回空值。
如果数组元素是字符或图形数据,则结果的 CCSID 是数组类型中数组元素的 CCSID。 如果数组元素是日期时间数据,则结果的 CCSID 为 1208。
示例
示例1 :假设PHONE_NUMBERS是一个数组变量,定义为数组类型。 数组类型定义为包含10个字符元素的普通数组。 此外,假设INT_VAR是一个整数变量。 以下赋值语句演示了如何为数组元素指定索引。
将数组的第一个元素设置为空:
SET PHONE_NUMBERS[1] = NULL;
将第三个元素设置为“4164789683”:
SET PHONE_NUMBERS[3] = '4164789683';
将数组元素设置为“4164788888”,并用变量INT_VAR指定数组索引:
SET PHONE_NUMBERS[INT_VAR] = '4164788888';
将数组元素设置为“4164783322”,并用表达式指定数组索引 INT_VAR+5:
SET PHONE_NUMBERS[INT_VAR + 5] = ‘4164783322’;