Изменяемый массив, или массив с переменной длиной — это тип данных, практически идентичный массиву в языке программирования С или Java. Синтаксис:
TYPE имя_типа IS (VARRAY | VARYING ARRAY] (максималъный_размер) OF тип_элементов [NOT NULL];
где имя_типа — это имя определяемого типа изменяемого массива,
максимальный_размер — целое число, определяющее максимальное количество элементов в изменяемом массиве,
тип_элементов — скалярный тип, тип записи или объектный тип PL/SQL. Кроме того, тип элементов можно указать при помощи %TYPE, но недопустимы BOOLEAN, NCHAR, NCLOB, NVARCHAR2, REF CURSOR.
Если типом элемента является тип «Запись PL/SQL», то каждое поле записи должно быть скалярного или объектного типа.
Максимальное количество элементов в изменяемом массиве указывается при определении типа и не может изменяться динамически. Доступ к каждому элементу массива осуществляется по индексу. VARRAY-массивы можно передавать в качестве параметров. Изменяемые массивы не могут иметь «пустот», так как для них нет операции удаления произвольного числа элементов.
Пример: