暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
Halo集合类型系列——嵌套表(Nested Table)的正确使用.docx
89
6页
1次
2024-12-06
免费下载
一、集合类型
Oracle
数据库中集合类型分为以下三种,分别为关联数组
(Associative Array)
、嵌
(Nested Table)
和可变数组
(VARRAY)
。更加详细的介绍如下:
关联数组
(Associative Array)
:又称索引表,通过数字或字符串作为下标来查找集合中的
元素,元素数量不限。
嵌套表
(Nested Table)
:与关联数组类似,使用有序数字作为元素的下标,元素的最大数
量不限。
可变数组
(VARRAY)
:使用有序数字作为元素的下标,元素的最大数量在定义时确定。
我们注意到了部分客户对集合类型存在着使用需求,而羲和(
halo
)数据
14
版本的
合类型尚不足以满足客户的要求,因此我们在羲和(
halo
)数据
16
版本专门针对集合
类型做了增强处理,
接下来将会给大家带来羲和
halo
)数据
16
版本集合类型系列文章,今天的主题是如
何正确使用嵌套表
(Nested Table)
二、嵌套表
(Nested Table)
如果换一种角度来理解嵌套
(Nested Table)
的话,可以将其类似看做是没有上限的一
数组。
并且访问嵌套表的元素也和访问数组元素类似,支持通过下标访问,最小下标值为
1
,通
过小括号访问。
--
访问
n
号元素
n
int
类型
n >= 1
collection_name(n)
当然也仅仅是类似作一维数组,除了上面说到的和数组的区别在于:数组是有固定上限
的,而嵌套表是无界的,大小可以动态增加。
除此之外,数组总
密集
的(有连续的下标),嵌套表则不一定,嵌套表初始状态是密集
集合,但是后续如果使用
DELETE
集合方法(后续展开介绍),则会变成稀疏集合,从
而不连续。
一张经典的图如下:
嵌套表语法定义如下:
--
Package
或匿名块中
TYPE type_name IS TABLE OF element_type [NOT NULL];
--
SQL
场景中,创建全局的嵌套表类型
CREATE TYPE type_name IS TABLE OF element_type [NOT NULL];
三、嵌套表变量初始化
如果想正常使用嵌套表,则必须对嵌套表进行初始化的动作,而对嵌套表进行初始化,
要使用对应构造函数。对于此处的构造函数而言,便是和嵌套表类型同名的函数。
初始化的动作可以发生在声明区域,也可以发生在执行区域。
没有初始化的嵌套表被自动赋值为
NULL
,当引用此嵌套表时,将会抛出预定义的异常。
四、集合方法
集合方法是对集合进行操作的内置函数或过程,一般点上相关方法,便代表着调用该方法。
collection_name.collection_method
嵌套表支持以下集合方法:
EXISTS
COUNT
LIMIT
FIRST and LAST
PRIOR and NEXT
EXTEND
TRIM
DELETE
通过相关的集合方法,可以帮助我们更容易的处理嵌套表的相关内容。
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜