Базовые функциональные возможности вложенных таблиц ничем не отличаются от возможностей индексных таблиц. Вложенную таблицу можно рассматривать как таблицу базы данных, содержащую два столбца: столбец ключей и столбец значений (см. выше). Из вложенной таблицы, как и из индексной, можно удалить любые элементы, после чего та становится разреженной, с непоследовательными ключами. Однако при создании вложенных таблиц ключи должны располагаться по порядку, и ключи не могут быть отрицательными. Кроме того, вложенные таблицы, в отличие от индексных, можно хранить в базе данных, а максимальное число строк вложенной таблицы составляет 2 гигабайта, что является также максимальным значением ключа.
Синтаксис создания вложенной таблицы:
TYPE имя_таблицы, IS TABLE OF тип_таблицы [NOT NULL];
где имя_таблицы — это имя нового типа, а тип_таблицы — тип элементов вложенной таблицы. В качестве типа таблицы может использоваться объектный тип, определяемый пользователем, или выражение, в котором применяется %TYPE, но не могут использоваться BOOLEAN, NCHAR, NCLOB, NVARCHAR2 и REF CURSOR. До версии Огас1е9гтипом таблицы не могли быть также TABLE и VARRAY. Это ограничение снято в Oracle9i (см. ниже). Если указано NOT NULL, то элементы вложенной таблицы не могут быть NULL.
Внимание
Единственное синтаксическое отличие индексной таблицы от вложенной заключается в указании в операторе создания таблицы предложения INDEX BY BINARYJNTEGER. Если это предложение отсутствует, то создается вложенная таблица, а если присутствует — то индексная таблица.
Ниже приводится пример объявления вложенных таблиц.
Внимание
Объектный тип MyObject определен в предыдущем разделе.
Следующая > |
---|