Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СУБД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.32 Mб
Скачать

Инициализация вложенных таблиц и изменяемых массивов

Для инициализации вложенной таблицы или изменяемого массива в программе PL/SQL автоматически используется функция конструктор для соответствующего типа. Функции – конструкторы PL/SQL имеют те же самые имена, что и типы вложенной таблицы или изменяемого массива. Когда в программе вызывается функция – конструктор для инициализации вложенной таблицы или изменяемого массива, можно указать список компонентов таблицы или массива, разделенных запятыми. При инициализации таблицы или массива записей необходимо ограничивать описание каждого компонента внутренними круглыми скобками. Например, в следующем фрагменте программы показано, как инициализировать вложенную таблицу, состоящую из трех компонентов, при её объявлении.

declare

type parts_table is table of sales.parts %rowtype;

current_parts_table parts_table := parts_table (

(1, 110.90, ’Samsung C110’),

null,

(3, 1200.00, ‘Network Computer’));

Из примера видно, что с помощью ключевого слова NULL можно инициализировать компонент вложенной таблицы, имеющий тип NULL.

Использование методов сборных конструкций со вложенными таблицами и с изменяемыми массивами

В PL/SQL используется несколько различных методов сборных конструкций (collection methods), применяемых в программах для работы с вложенными таблицами и с изменяемыми массивами. В таблице 3 приведен список методов сборных конструкций, доступных в PL/SQL.

Таблица 3 Методы сборных конструкций

Метод

Описание

EXISTS(x)

Возвращает TRUE, если существует x-й элемент вложенной таблицы или изменяемого массива. В противном случае возвращает FALSE.

COUNT

Возвращает число элементов, находящихся в данный момент во вложенной таблице или в изменяемом массиве.

LIMIT

Возвращает максимальное число элементов, которое может содержать изменяемый массив.

FIRST

Возвращает первый компонент вложенной таблицы или изменяемого массива.

LAST

Возвращает последний компонент вложенной таблицы или изменяемого массива.

PRIOR(x)

Возвращает компонент, предшествующий x-тому компоненту вложенной таблицы или изменяемого массива.

NEXT(x)

Возвращает компонент, следующий за x-м компонентом вложенной таблицы или изменяемого массива.

EXTEND(x,y)

Добавляет x копий y-го элемента вложенной таблицы или изменяемого массива.

TRIM(x)

Вырезает” x элементов с конца вложенной таблицы или изменяемого массива.

DELETE(x)

Удаляет некоторые или все элементы вложенной таблицы или изменяемого массива.

Для использования какого-либо метода сборных конструкций в операторе PL/SQL задается имя сборной конструкции (вложенной таблицы или изменяемого массива) с указанием в качестве суффикса (при помощи уточняющей записи через точку) метода сборных конструкций. В следующих операторах PL/SQL применяются методы сборных конструкций:

record_count := current_parts_table.count;

current_parts_record := current_parts_table.first;

current_parts_table.delete(3);

current_parts_table.delete(4,6);

current_parts_table.delete;