Как выбрать массив чисел в Oracle PL/SQL?

Я пытаюсь сохранить набор идентификаторов в массиве:

declare
 cities_ids array_of_numbers;
begin
select id into cities_ids from objects where id = 1115464;
    FOR i IN 1..cities_ids.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE(cities_ids(i));
    END LOOP;
end;

После выполнения я получил следующую ошибку:

ORA-00932: inconsistent datatypes. Expected UDT, got NUMBER.

Пожалуйста, объясните, что я сделал неправильно...

Ответ 1

Очень просто: BULK COLLECT отсутствует.

declare
 cities_ids arrayofnumbers;
begin
select object_id BULK COLLECT into cities_ids from nc_objects where object_id = 1000;
    FOR i IN 1..cities_ids.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE(cities_ids(i));
    END LOOP;
end;