Цикл в гнезде Цикл для вывода значений по столбцам, а не по строкам - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть результирующий набор информации из запроса, прикрепленного к курсору

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 во вложенный цикл, чтобы оно печатало только столбец, в котором находится внешний цикл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...