PL/SQL Можно ли присвоить массив, результат запроса, переменной?

программирование oracle pl/sql

Есть тип данных - ANY_TABLE_ID, который по сути является массивом для переменных типа NUMBER.
Есть переменна Ids, типа ANY_TABLE_ID.
Как присвоить переменной Ids результат зпроса:
Select a.id from books a
Мне нужно получить массив всех id из таблицы books.
Когда я пытаюсь присвоить результат запроса следуюзим образом
Select a.id into Ids from books a
PL/SQL ругается и возвращает ошибку ORA-00932.
Ответы:
cnt:=0;
for r in (Select a.id from books a) loop
cnt:=cnt+1;
Ids(cnt):=r.id;
end loop;
можно  еще что-то вроде
Select a.id bulk collect into Ids from books a
но я bulk collect -ом почти не пользовался


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.