购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1.3 嵌套表

在数据库中,嵌套表是一种可以不指定顺序来存储未指定数量行的类型。

从数据库中检索嵌套表值到PL/SQL嵌套表变量时,PL/SQL会从1开始为行提供连续索引。使用这些索引,可以访问嵌套表变量的各个行。语法是variable_name(index)。从数据库中存储和检索嵌套表时,嵌套表的索引和行顺序可能不稳定。

当添加或删除元素时,嵌套表变量占用的内存量可以动态地增加或减少。

未初始化的嵌套表变量是一个NULL集合。必须通过构造函数或为其赋予非空值进行初始化。

1.嵌套表的声明

示例3.4: 块内部的嵌套表类型。

功能描述: 本例定义一个块内部的嵌套表类型,然后声明该类型的变量(使用构造函数初始化),并定义一个打印嵌套表的存储过程。之后调用该存储过程3次:初始化变量后、更改一个元素的值后,以及使用构造函数更改所有元素的值后。在第2次构造函数调用之后,嵌套表只有2个元素,引用元素3会引发错误。

程序代码如下。

程序运行结果如下。

示例3.5: 独立的嵌套表类型。

功能描述: 本例定义了一个独立的类型nest_type和1个独立的存储过程show_nesttype,用来打印该类型的变量。匿名块声明1个类型为nest_type的嵌套表变量,用构造函数将其初始化为空,变量初始化后,使用构造函数更改所有元素的值,两次调用show_nesttype。

程序代码如下。

程序运行结果如下。

2.嵌套表的适用情况

嵌套表适用于以下情况。

①未指定元素的数量。

②索引值是不连续的。

③需要删除或更新某些元素,但不能同时删除或更新所有元素。 oDEr5w3/xC8zPER0WGoVjYBELSh14vCGKBZgGMCoDAmtRzGxgpCQQVGqa1bcJDJA

点击中间区域
呼出菜单
上一章
目录
下一章
×