1

我有一个 PLSQL 函数,它填充并返回一个嵌套表:

select distinct id bulk collect into my_nested_table
from user
order by id;
return my_nested_table;

根据文档,嵌套表是多重集,没有固有的顺序。

尽管如此,我是否可以假设从上面的函数返回的嵌套表将按 id 排序(正如select语句所暗示的那样)并保留该顺序,只要我不将它存储在数据库中?

提供文档链接是一个加分项。:)

4

2 回答 2

4

首先你应该知道,什么是NESTED TABLE

根据Oracle 文档

在数据库中,嵌套表可以被认为是一列数据库表Oracle 以无特定顺序存储嵌套表的行。但是,当您将嵌套表检索到 PL/SQL 变量中时,会为行提供从 1 开始的连续下标。这使您可以像数组一样访问各个行

它是单列表,具有 的行为array,但它们是无界的(大小可以动态增加)。此外,最初NESTED TABLE本质上是密集的,但后来它们变得稀疏(一旦您从中删除任何元素)。

在此处输入图像描述

于 2015-06-17T08:13:47.057 回答
0

您可以依赖收集的顺序,直到它包含在 pl/sql 中并且不执行任何添加或删除元素进一步收集。

于 2015-06-18T14:18:26.507 回答