END;
2.3.2. Метод DELETE
CREATE PROCEDURE my_del (p_List IN OUT List_t) IS
I_ot NUMBER := p_List.FIRST;
I_do NUMBER := p_List.NEXT(I_ot);
BEGIN
IF (p_List.COUNT>0) then
IF (I_do IS NOT NULL) THEN
p_List.DELETE(I_ot, I_do);
ELSE
p_List.DELETE;
END IF;
END IF;
END;
2.3.3. Метод EXISTS
CREATE PROCEDURE my_empty (p_List IN OUT List_t) IS
BEGIN
IF (p_List.EXISTS(2)) then
p_List(2) := NULL;
END IF;
END;
2.3.4. Метод EXTEND
CREATE PROCEDURE my_value (p_List IN OUT List_t) IS
BEGIN
p_List. EXTEND;
p_List(p_List.LAST) := ‘-’;
END;
2.3.5. Методы FIRST и LAST
CREATE PROCEDURE my_ send (p_List IN OUT List_t) IS
FOR idx IN p_List. FIRST .. p_List. LAST LOOP
send_email(idx);
END LOOP;
END;
2.3.6. Метод LIMIT
IF my_List.LAST < my_List. LIMIT THEN
my_List.EXTEND;
END IF;
2.3.7. Методы PRIOR и NEXT
CREATE FUNCTION cnt_Totl (p_List IN List_t) RETURN NUMBER IS
idx NUMBER := p_List.FIRST;
Ttl NUMBER := 0;
LOOP
EXIT WHEN idx IS NULL;
Ttl := Ttl + p_List(idx);
Idx := p_List.NEXT (idx);
ENDLOOP;
RETURN Ttl;
END;
2.3.8. Метод TRIM
l_val NUMBER;
BEGIN
IF p_List.COUNT>0 THEN
l_val := p_List(p_List.LAST);
p_List.TRIM
END IF;
RETURN l_val;
END;
2.4. Работа с коллекциями
2.4.1. Инициализация коллекций
Ассоциативные массивы не требуют явной инициализации.
Инициализация вложенных таблиц и массивов VARRAY:
§ явно, с помощью конструктора
§ неявно, путем непосредственного присваивания содержимого другой переменной-коллекции
§ неявно, путем выборки записей из базы данных
DECLARE
my_List List_t := List_t(‘RED’,’GREEN’);
BEGIN
. . .
END;
my_List List_t := List_t(‘RED’,’GREEN’);
other_List List_t;
other_List := my_List;
other_List(2) := ‘BLUE’;
END;
DECLARE
my_List List_t;
BEGIN
SELECT color INTO my_List FROM color_models
. . .
END;
2.4.2. Присваивание значений элементам коллекции
my_List(4) := ‘RED’;
other_List := my_List;
2.4.3. Считывание значений элементов коллекции
IF (p_List.EXISTS(2)) then
DBMS_OUTPUT.PUT_LINE(‘p_List(2)=’|| p_List(2));
ENDIF;
2.4.4. Работа с коллекциями составных элементов
§ коллекции записей (Oracle 7.3.4 и выше) – при условии, что записи не содержат в качестве полей другие записи или коллекции
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.