The storage size of an ARRAY/VARRAY depends on how it is defined.
|Flag bits||Used to configure the layout of the field.
Bit 0: variable offset size.
Bits 1 - 15: unused
|Last present element||Index of the last present element in the array. This consists of 1 to number_of_dimensions integer values, one for each dimension.
The index values are 0-based.
If the array has uninitialized elements, the index values are equal to -1.
|4 x number_of_dimensions|
|Presence bit array||Presence bit array for the array elements.
A variable length byte array with 1 bit per element laid out in row major order.
0 means the element is null.
1 means the element is not null.
|Variable offset array||
||2 x number_of_elements
4 x number_of_elements
|Element value array||All elements are stored in row major order.
Variable length elements are stored in their actual size.
|number_of_elements x element_size|