1

我在 oracle 中学习集合并遇到了 Varrays。它说 Varrays 具有连续下标的固定大小,那么为什么我们说它是可变大小的数组?

4

3 回答 3

1

我必须承认我虽然 VARRAY 代表变量数组,因为它是一个变量数组。但是,文档实际上确实说“可变大小数组” (引文)。我不知道这是什么原因:(


我不会为此流汗的。在现实生活中,我们几乎总是使用嵌套表集合。灵活性比固定大小的约束更有用。VARRAY 的一大优点是保证它们的元素保持顺序,而嵌套表则不然。


一个念头产生。当我们谈论这种数据类型时,我们通常将其发音为vee array。如果它被称为 Fixed-size Array 那将是eff array,因此容易被误解。一个以英语为母语的人:D

于 2013-04-24T08:10:47.527 回答
0

好吧,这就是手册必须说的

varray(可变大小数组)是一个数组,其元素数量可以从零(空)到声明的最大大小不等。要访问可变数组变量的元素,请使用语法 variable_name(index)。index的下限为1;上限是当前元素的数量

所以元素的最大数量是固定的,但当前的元素数量是可变的。

于 2013-04-27T22:16:23.003 回答
0

除了 a_horse_with_no_name 的解释:

根据此 Oracle 文档中的 VARRAY 部分:

当您定义一个可变数组时,您指定它可以包含的最大元素数,尽管您可以稍后更改这个数字。数组中元素的数量就是数组的大小。Oracle 允许数组具有可变大小,这就是它们被称为可变数组的原因。

所以命名约定似乎源于两个关键点:

1) 即使您必须设置 VARRAY 的最大尺寸,也没有什么能阻止您再次设置它,这意味着它的尺寸会随着时间而变化

2) 重申报价,Oracle 允许 VRRAYS 具有可变大小用户在数组上定义所述“大小变量”的值。

于 2019-02-13T15:30:24.557 回答