数组元素说明

数组元素说明从数组索引指定的数组中返回元素。

阅读语法图跳过可视化语法图数组表达式[ 数组索引]
数组表达式
更改开始指定一个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’;