У меня есть результирующий набор информации из запроса, прикрепленного к курсору
col1 | col2 | col3 | col4 | col5
================================
id1 | vb1 | vc1 | vd1 | date1
id2 | vb2 | vc2 | vd2 | date2
id3 | vb3 | vc3 | vd3 | date3
id4 | vb4 | vc4 | vd4 | date4
id5 | vb5 | vc5 | vd5 | date5
This query is assigned to cursor CURSOR_Q
Кроме того, у меня есть оператор выбора из двойного определения имен столбцов.
select 1, 'col1' header from dual union
select 2, 'col2' from dual union
select 3, 'col3' from dual union
select 4, 'col4' from dual union
select 5, 'col5' from dual union
This is assigned to CURSOR_H
Я выполняюцикл для печати по столбцу, а не по строке информации из CURSOR_Q
vb1 vb2 vb3 vb4 vb5 vc1 vc2 vc3 vc4 vc5 date1 date2 date3 date4 date5
Чтобы добиться этого, я считаю, что мне нужно вложить функцию цикла.
FOR col_name IN CURSOR_H
LOOP
CASE WHEN col_name.header = 'col1' OR col_name.header = 'col4' then
htp.p('');
ELSE
FOR record IN CURSOR_Q
htp.p(' '||record.<col_name>);
END LOOP;
END CASE;
END LOOP;
Моя проблемаЯ не знаю, как указать <col_name>
.Как передать значение col_name.header
во вложенный цикл, чтобы оно печатало только столбец, в котором находится внешний цикл?