一、前言
前不久,咱们带来了关于羲和数据库集合类型中的嵌套表、关联数组的使用,因为中途临
时有事情要忙,所以小咕了一会,相关链接如下
羲和(
halo
)数据库集合类型系列——学会嵌套表
(Nested Table)
的正确使用
羲和(
halo
)数据库集合类型系列——关联数组(
Associative Array
)
今天要给大家带来的是 羲和(
halo
)数据库集合类型基础用法最终章——可变数组
(Varray)
相关内容。
可变数组(
Varray
)其实和嵌套表没什么太大的差异,最大的差异点就在于可变数组大小
是声明类型时便已经确定了,而嵌套表是可以一直动态增长的。
二、可变数组(
Varray
)
访问可变数组(
Varray
)的元素也和访问嵌套表元素一致,支持通过下标访问,最小下标
值为
1
,通过小括号访问。
--
访问
n
号元素
n
为
int
类型
n >= 1
collection_name(n)
可变数组始终是密集的,嵌套表是可密集也可以稀疏的集合。如下图:
但其并不意味着可变数组(
Varray
)不支持
DELETE
集合方法,它允许通过
DELETE
删
除集合中所有元素。
可变数组(
Varray
)语法定义如下:
--
在
Package
或匿名块中
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit)
OF element_type [NOT NULL];
--
在
SQL
场景中,创建全局的可变数组类型
CREATE TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit)
OF element_type [NOT NULL];
三、可变数组(
Varray
)变量初始化
如果想正常使用可变数组(
Varray
),则必须对可变数组(
Varray
)进行初始化的动作,
而对可变数组(
Varray
)进行初始化,需要使用对应构造函数。对于此处的构造函数而言 ,
便是和可变数组(
Varray
)类型同名的函数。
初始化的动作可以发生在声明区域,也可以发生在执行区域。初始化的元素个数不能超过
定义的大小。一个简单的示例如下
Halo
:
评论