我知道两者的基本区别和用途。但是,我正在寻找的答案是,为什么VARRAY引入了?
因为,我们可以使用嵌套表做同样的事情--使用VARRAY可以做什么,而反之亦然--在某些情况下是不可能的。此外,我注意到一些地方有人提到VARRAY商店元素内联.这是什么意思?有人能解释这两者的内部存储和处理吗?
发布于 2015-04-22 05:59:23
总之,在以下情况下可以使用变量大小数组 a.k.a 瓦雷:
例如,VARRAY声明为:
TYPE varray_emp IS VARRAY(14) OF emp%ROWTYPE;
emp_rec varray_emp;因此,您可以看到上界是固定的,在上面的示例中是14。
有关更多细节,请参见文档。
关于数据库中存储VARRAY的更新
引用上述文档链接:
每个varray存储为单个对象,或者存储在表中(如果varray小于4KB),或者存储在表外(如果varray大于4KB),但仍存储在相同的表空间中。您必须同时更新或检索varray的所有元素,这在同时对所有元素执行某些操作时是最合适的。但是,您可能会发现以这种方式存储和检索大量元素是不切实际的。
关于行存储中的:
varray通常以一行方式存储,即与其行中的其他数据存储在相同的表空间中。如果它足够大,Oracle会将其存储为BLOB。
阅读更多关于Varrays的存储注意事项的信息
发布于 2018-04-07 15:10:29
有两个主要的重要区别:
发布于 2015-04-22 05:39:29
差异b/w嵌套表和varray:
将为嵌套表创建单独的表空间,该表不是父表的表空间。如果varray大小小于4KB,则将其存储在表(否则为列)内,则存储在表外但存储在相同的表空间中。 可以对嵌套表的单个元素执行更新、删除。 不可能对Varray中的单个元素执行更新和删除。要获得更多的澄清,请通过下面的链接。colls.htm
https://stackoverflow.com/questions/29787961
复制相似问题