Вот этот раздел доки курим
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/collections.htm#CIHIEBJCИ еще условие Bulk collect оператора Select, но это если лень в цикле заполнять.
... и добавил:Он на объявления курсоров ругается, потому, что ищет таблицу в базе, а не переменную в разделе декларации.
... и добавил:Если надо заполнить коллекцию из базы, то это делается так:
PROCEDURE process_all_rows
IS
TYPE employees_aat
IS TABLE OF employees%ROWTYPE
INDEX BY PLS_INTEGER;
l_employees employees_aat;
BEGIN
SELECT *
BULK COLLECT INTO l_employees
FROM employees;
FOR indx IN 1 .. l_employees.COUNT
LOOP
analyze_compensation
(l_employees(indx));
END LOOP;
END process_all_rows;
Без Rowtype можно обойтись, но в селекте должно стоять одно поле соответсвующего типа.