В этом учебном материале вы узнаете, как использовать Varrays в Oracle PL/SQL с синтаксисом и примерами.
Описание
В Oracle PL/SQL Varray (массив с переменным размером) - это массив, число элементов которого может варьироваться от нуля (пусто) до объявленного максимального размера.
Чтобы получить доступ к элементу переменной Varray, используйте синтаксис variable_name(index).
Нижняя граница index равна 1; верхняя граница - это текущее количество элементов.
Верхняя граница изменяется при добавлении или удалении элементов, но она не может превышать максимальный размер.
Когда вы храните и извлекаете varray из базы данных, его индексы и порядок элементов остаются стабильными.
Синтаксис
Синтаксис для определения, а затем объявление переменной типа Varrays в Oracle PL/SQL.
v_arr type_varray;
Параметры или аргументы
type_varray – имя типа Varray
element_type - любой тип данных PL/SQL, за исключением REF CURSOR
size_limit - это положительный целочисленный литерал, представляющий максимальное количество элементов в массиве.
v_arr - имя переменной типа Varray
Примечание
- При определении типа Varray вы должны указать его максимальный размер.
Пример
Рассмотрим на примере как использовать Varray в Oracle PL/SQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
DECLARE TYPE Foursome IS VARRAY(4) OF VARCHAR2(15); -- Varray type -- переменная varray, инициализированная конструктором: team Foursome := Foursome('John', 'Mary', 'Alberto', 'Juanita'); PROCEDURE print_team (heading VARCHAR2) IS BEGIN DBMS_OUTPUT.PUT_LINE(heading); FOR i IN 1..4 LOOP DBMS_OUTPUT.PUT_LINE(i || '.' || team(i)); END LOOP; DBMS_OUTPUT.PUT_LINE('---'); END; BEGIN print_team('2001 Team:'); team(3) := 'Pierre'; -- Изменение значений двух элементов team(4) := 'Yvonne'; print_team('2005 Team:'); -- Вызывать конструктор для назначения новых значений переменной Varray: team := Foursome('Arun', 'Amitha', 'Allan', 'Mae'); print_team('2009 Team:'); END; В результате получим: 2001 Team: 1.John 2.Mary 3.Alberto 4.Juanita --- 2005 Team: 1.John 2.Mary 3.Pierre 4.Yvonne --- 2009 Team: 1.Arun 2.Amitha 3.Allan 4.Mae --- |
В этом примере мы определили Foursome как локальный тип Varray, объявили переменную team этого типа (инициализировали его конструктором) и определили процедуру print_team, которая напечатала Varray. Пример вызывает процедуру три раза:
- после инициализации переменной,
- после изменения значений двух элементов по отдельности,
- и после использования конструктора для изменения значения всех элементов.
Использование Varray
Varray целесообразно использовать, когда:
- Вы знаете максимальное количество элементов.
- Вы получаете доступ к элементам последовательно.
- Поскольку вы должны хранить или извлекать все элементы одновременно, Varray может оказаться непрактичным для большого количества элементов.