PLOSCAR集合类型

前面已经提过,一共有三种PLOSCAR集合类型。这些不同的类型即有许多共性,每个类型又有其独特得特性,下面对这三种类型进行了总结。

索引表

索引表是一个只能在PL/SQL内部使用的,一维的、无界的、由同种类型元素构成的集合类型。也称为PL/SQL表或关联数组。索引表是可以在PL/SQL例程中使用,能够模仿数组结构的非永久表。我们可以定义一个索引表类型,然后声明这种类型的变量。接下来,就可以将用户数据增加到用户的索引表中,并且采用与引用数组元素大体相同的方式应用它们。

索引表就是键值对的集合,其中键是唯一的,用于确定数组中对应的元素值。键可以是整数或字符串。第一次使用键来指派一个对应的值就是添加元素,而后续这样的操作就是更新元素。

索引表也有两个重要的地方不同于数组:

  1. 数组是静态的,一旦定义后不能增删元素的个数,索引表是动态的,元素个数可以随时增删,表大小没有限制。
  2. 数组的下标是从0或者1开始的连续整数,索引表的下标(Index)可以是非连续的整数或字符串,且整数不一定从0或1开始,可以为负数。

嵌套表

嵌套表也是一个一维的、无界的、由同种类型元素构成的集合类型。嵌套表在最开始声明使用时是紧凑的,不过随着不断的删除等操作就开始变得稀疏了。嵌套表声明时的大小决定了当前集合的可用大小,若需要填充的数据量扩大则需要调用集合的内置函数进行扩展空间。嵌套表的键只能为从1开始的正整数,且它的索引有一个固定的下界1和一个可以扩展的上界。

变长数组

变长数组同嵌套表类似,但变长数组有一个长度最大值,是在我们定义时指定的,集合在进行扩展时不可超过此最大值上限。变长数组不可以对集合中的任意一个元素进行删除操作,因此变长数组总是有界的、紧凑的集合类型。