Записи и коллекции в PL/SQL, страница 6

§  коллекции объектов (Oracle8 и выше)

§  коллекции коллекций (Oracle9i и выше)

2.4.5. Использование ассоциативных массивов типа VARCHAR2

DECLARE

TYPE name_t IS TABLE emp%ROWTYPE INDEX BY VARCHAR2(20);

TYPE id_t IS TABLE emp%ROWTYPE INDEX BY BINARY_INTEGER;

by_name  name_t;

by_tabN    name_t;

by_id         id_t;

BEGIN

FOR v_emp IN (SELECT * FROM emp) LOOP

by_name(v_emp.name) := v_emp;

by_tabN (v_emp.tabN)   := v_emp;

by_id (v_emp.id)             := v_emp;

END LOOP;

IF by_id.EXISTS(27) THEN

    -- обработказаписи

END IF;

IF by_name.EXISTS(‘ПетровП.П.’) THEN

-- обработка записи

ENDIF;

IF by_tabN.EXISTS(‘052’) THEN

-- обработка записи

ENDIF;

END;