DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Вложенные таблицы

Базовые функциональные возможности вложенных таблиц ничем не от­личаются от возможностей индексных таблиц. Вложенную таблицу мож­но рассматривать как таблицу базы данных, содержащую два столбца: столбец ключей и столбец значений (см. выше). Из вложенной таблицы, как и из индексной, можно удалить любые элементы, после чего та стано­вится разреженной, с непоследовательными ключами. Однако при созда­нии вложенных таблиц ключи должны располагаться по порядку, и ключи не могут быть отрицательными. Кроме того, вложенные таблицы, в отличие от индексных, можно хранить в базе данных, а максимальное число строк вложенной таблицы составляет 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 определен в предыдущем разделе.

 


Теплоизоляционные материалы - роквул.







jAntivirus