gpt4 book ai didi

oracle - 嵌套表和 VARRAY 之间的区别

转载 作者:行者123 更新时间:2023-12-02 06:29:42 24 4
gpt4 key购买 nike

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

因为,我们可以使用 NESTED TABLE 做同样的事情,使用 VARRAY 可以做同样的事情,反之亦然,在某些情况下是不可能的。另外,我注意到有些地方人们提到 VARRAY 存储元素内联。这是什么意思 ?谁能解释一下两者的内部存储和处理?

最佳答案

总而言之,您可以使用可变大小数组(又名 VARRAY) 何时:

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

例如,VARRAY 声明为:

TYPE varray_emp IS VARRAY(14) OF emp%ROWTYPE;
emp_rec varray_emp;

因此,您会看到上限是固定的,在上面的示例中为 14。

请参阅documentation了解更多详情。

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

引用上述文档链接:

Each varray is stored as a single object, either inside the table of which it is a column (if the varray is less than 4KB) or outside the table but still in the same tablespace (if the varray is greater than 4KB). You must update or retrieve all elements of the varray at the same time, which is most appropriate when performing some operation on all the elements at once. But you might find it impractical to store and retrieve large numbers of elements this way.

关于在线存储:

A varray is normally stored in line, that is, in the same tablespace as the other data in its row. If it is sufficiently large, Oracle stores it as a BLOB

了解更多关于Storage Considerations for Varrays的信息

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com