Как выбрать массив чисел в 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;