Oracle 嵌套表和VARRAY之间的差异
我知道两者的基本区别和用途。但是,我要寻找的答案是,瓦雷到底为什么要介绍他Oracle 嵌套表和VARRAY之间的差异,oracle,plsql,nested-table,varray,Oracle,Plsql,Nested Table,Varray,我知道两者的基本区别和用途。但是,我要寻找的答案是,瓦雷到底为什么要介绍他 因为,我们可以使用嵌套表做同样的事情,而使用VARRAY做同样的事情是不可能的,反之亦然。此外,我还注意到一些人们提到VARRAY在线存储元素的地方。这是什么意思?有人能解释一下这两种方法的内部存储和处理吗?嵌套表和varray的区别: 将为其他嵌套表创建单独的表空间 大于父表的表空间。 如果varray大小小于4KB,则将其存储在作为列的表中,否则,它将存储在表外部,但存储在相同的表空间中。 可以对嵌套表的单个元素执行
因为,我们可以使用嵌套表做同样的事情,而使用VARRAY做同样的事情是不可能的,反之亦然。此外,我还注意到一些人们提到VARRAY在线存储元素的地方。这是什么意思?有人能解释一下这两种方法的内部存储和处理吗?嵌套表和varray的区别: 将为其他嵌套表创建单独的表空间 大于父表的表空间。 如果varray大小小于4KB,则将其存储在作为列的表中,否则,它将存储在表外部,但存储在相同的表空间中。
可以对嵌套表的单个元素执行更新、删除操作。
无法对Varray中的单个元素执行更新和删除。 欲了解更多信息,请点击下面的链接。
总而言之,在以下情况下,您可以使用一个可变大小数组a.k.a:
- 在填充之前,元素的数量是已知的
- 元素需要按顺序访问
- 元素的保序
TYPE varray_emp IS VARRAY(14) OF emp%ROWTYPE;
emp_rec varray_emp;
因此,您可以看到上限是固定的,在上面的示例中是14
有关更多详细信息,请参阅
更新关于在数据库中存储VARRAY的信息
引用上述文档链接:
每个varray都作为单个对象存储在
它是一个列(如果varray小于4KB)或在
表,但仍在同一表空间中(如果varray大于
4KB)。必须同时更新或检索varray的所有元素
同一时间,这在对执行某些操作时最合适
一次完成所有元素。但是,你可能会发现存储数据是不切实际的
并以这种方式检索大量元素
关于在线存储:
varray通常以行的形式存储,也就是说,存储在同一个表空间中
作为其行中的其他数据。如果足够大,Oracle
将其存储为水滴
阅读更多关于的信息有两个主要的重要区别:
请张贴你的报价来源。请参考链接。我知道你已经回答了上面。我实际上在寻找的是,它们是如何存储的?在线存储意味着什么?请参阅有关VARRAY存储和在线存储含义的更新。在线存储意味着,这些值像简单值一样存储,例如数字或(短)文本。大纲意味着,值存储在一个额外的表中,该表甚至可以在另一个表空间中,因此甚至可以在不同的物理硬盘上,尽管数据属于表中的单个记录。同意。但是,关于数字,它们在内部再次存储为不同大小的字符。而且,当行大小由于VARRAY而充分增加时,它的处理方式与BLOB相同。