Массивы типа VARRAY потребительски во многом похожи на вложенные таблицы, но имеют и ряд существенных технических и внешних отличий. Например, они обязаны иметь ограничение на максимальное число элементов в конкретных массивах, наподобие типу VARCHAR2. Еще они не требуют для хранения данных служебной таблицы, наподобие вложенной таблицы. Есть и другие отличия. Фирма Oracle советует использовать вложенные таблицы, если нужно хранить неупорядоченные списки и VARRAY, если нужно хранить упорядоченные.
Пример использования для группировки сотрудников коллекции VARRAY может выглядеть так:
CREATE TYPE employee_vlist_typ AS VARRAY(20) OF employee_typ
/
CREATE TABLE department1 (
dname VARCHAR2(15),
emps employee_vlist_typ
);
Этим типом мы запретили отделам иметь более 20-и сотрудников.
Добавление нового отдела делается как и для вложенных таблиц:
INSERT INTO department1 VALUES (
'Operations',
employee_vlist_typ (
employee_typ ('Scott', 'Manager'),
employee_typ ('Smith', 'Salesman')
)
);
Приведенный выше код на PL/SQL для массива сотрудников VARRAY проработает так же.