数组类型的使用
在使用数组之前,需要自定义一个数组类型。
在存储过程中紧跟AS 关键字后面定义数组类型。定义方法如下。
TYPE array_type IS VARRAY(size) OF data_type;
其中:
array_type:要定义的数组类型名。
VARRAY:表示要定义的数组类型。
size:取值为正整数,表示可以容纳的成员的最大数量。
data_type:要创建的数组中成员的类型。
说明
在GBase 8c 中,数组会自动增长,访问越界会返回一个NULL,不会报错。
在存储过程中定义的数组类型,其作用域仅在该存储过程中。
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
624
建议选择上述定义方法的一种来自定义数组类型,
当同时使用两种方法定义同名的
数组类型时,GBase 8c 会优先选择存储过程中定义的数组类型来声明数组变量。
data_type 也可以为存储过程中定义的record 类型(匿名块不支持),但不可以为
存储过程中
定义的数组或集合类型。
GBase 8c 支持使用圆括号来访问数组元素,
且还支持一些特有的函数,
如extend、
count、
first、last、prior、exists、trim、next、delete 来访问数组的内容。
说明
存储过程中如果有DML 语句(SELECT、UPDATE、INSERT、DELETE),DML
语句推荐使用
中括号来访问数组元素,使用小括号默认识别为数组访问,若数
组不存在,则识别为函数表达式。
如果clob 类型大于1GB,则存储过程中的table of 类型、record 类型、clob 作为出
入参、游标、raise info 等功能不支持。