我知道两者的基本区别和用途。但是,我正在寻找的答案是,为什么要引入VARRAY?

因为,我们可以使用NESTED TABLE进行相同的操作,而可以使用VARRAY进行相同的操作,而在某些情况下则不可能。另外,我注意到有人提到VARRAY将元素内联存储在中。这是什么意思 ?谁能解释两者的内部存储和处理?

最佳答案

总而言之,在以下情况下,您可以使用可变大小数组 VARRAY :

  • 在填充元素之前,已知元素的数量。
  • 元素需要顺序访问
  • 元素的保证顺序

  • 例如,VARRAY被声明为:
    TYPE varray_emp IS VARRAY(14) OF emp%ROWTYPE;
    emp_rec varray_emp;
    

    因此,您看到 UPPER BOUND是固定的,在上面的示例中是14。

    有关更多详细信息,请参见documentation

    更新关于将VARRAY存储在数据库中

    引用以上文档链接:



    关于行中的存储:



    阅读有关Storage Considerations for Varrays的更多信息

    关于oracle - 嵌套表和VARRAY之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29787961/

    10-12 17:24