Вам нужно использовать функцию для этого. См. LISTAGG
select d.layout_id,
d.pgm_nm,
LISTAGG(d.corp_nm, ', ') as corp_nm
from io_layout_output d
join (select f.program_nm,
c.corp_nm
from file_config f
join corp_config c
on f.output_id = c.output_id
where f.output_id = 112) b
on d.pgm_nm = b.program_nm
and d.corp_nm = b.corp_nm
group by d.layout_id,
d.pgm_nm
РЕДАКТИРОВАНИЕ:
В прошлый раз, когда я использовал Oracle, вы могли использовать LISTAGG, используя group by. Я просто посмотрел на документы, и это больше не упоминается. Вот способ, если выше не работает:
select d.layout_id,
d.pgm_nm,
LISTAGG(d.corp_nm, ', ')
WITHIN GROUP (ORDER BY d.layout_id, d.pgm_nm) as corp_nm
from io_layout_output d
join (select f.program_nm,
c.corp_nm
from file_config f
join corp_config c
on f.output_id = c.output_id
where f.output_id = 112) b
on d.pgm_nm = b.program_nm
and d.corp_nm = b.corp_nm
Примечание: я просто показываю, как использовать функцию. Не смотрел на ваш запрос вообще. Добавление этой заметки, потому что ваши данные результатов не соответствуют количеству столбцов на вашем SQL