我有一个PLSQL函数,它填充并返回一个嵌套表:
select distinct id bulk collect into my_nested_table
from user
order by id;
return my_nested_table;
根据文档,嵌套表是多字节的,没有固有的顺序。
但是我可以假设从上面的函数返回的嵌套表将按id排序(如select
语句所暗示的那样)并保留该顺序,只要我不将它存储在数据库中?
提供文档链接是一个优点。 :)
答案 0 :(得分:4)
首先你应该知道,NESTED TABLE
在数据库中,嵌套表可以被视为一列 数据库表。 Oracle将嵌套表的行存储在 no中 特别订单。但是,当您将嵌套表检索到 PL / SQL变量,行从连续的下标开始给出 1.这为您提供了对各行的数组访问
单列表,其行为为array
,但它们无限制(大小可以动态增加)。此外,最初NESTED TABLE
本质上是密集的,但后来它们变得稀疏(一旦从中移除任何元素)。
答案 1 :(得分:0)
你可以依赖于收集顺序,直到它在pl / sql中保存,并且不再对集合执行任何添加或删除元素。