嵌套表是否在未存储时保留顺序?

时间:2015-06-17 08:07:50

标签: oracle plsql nested-table

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

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

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

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

提供文档链接是一个优点。 :)

2 个答案:

答案 0 :(得分:4)

首先你应该知道,NESTED TABLE

是什么

根据Oracle Doc

  

在数据库中,嵌套表可以被视为一列   数据库表。 Oracle将嵌套表的行存储在 no中   特别订单。但是,当您将嵌套表检索到   PL / SQL变量,行从连续的下标开始给出   1.这为您提供了对各行的数组访问

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

enter image description here

答案 1 :(得分:0)

你可以依赖于收集顺序,直到它在pl / sql中保存,并且不再对集合执行任何添加或删除元素。