Как читать коллекции из колонки главной таблицы в переменную с типом коллекции программного блока?

Не могу разобраться до конца с принципом работы вложенных таблиц.

Такой вопрос, вот есть конструкция:

DECLARE <Объект-коллекция>  <Тип ВТ>;
<Переменная-элемент коллекции >  <Тип из БД>;
J integer := 0;
BEGIN . . . . . . END;

Подскажите, что должно располагаться между BEGIN и END?

Со всем, что располагается выше в конструкции, в целом разобралась.


Ответы (1 шт):

Автор решения: 0xdb

что должно располагаться между BEGIN и END?

Там реализуется логика, в данном случае - чтение коллекции из колонки таблицы:

create or replace type nttype is table of varchar2 (8)
/
create table main_table (val) as
    select 'val '||rownum from dual connect by level<=9
/
declare
    object_collection nttype := nttype ('a','b','c');
    element_of_collection varchar2 (8);
    j int := 7;
begin 
    dbms_output.put_line ('collection has '||object_collection.count||' elements'); 
    select val bulk collect into object_collection
    from main_table;
    dbms_output.put_line (
        'collection has '||object_collection.count||
        ' elements, element of collection ('||j||') is "'||object_collection(j)||'"'); 
end;
/

Выведет (на db<>fiddle):

collection has 3 elements
collection has 9 elements, element of collection (7) is "val 7"

→ Ссылка