Tim Hall hat eine ziemlich kanonische Liste von String-Aggregationstechniken in Oracle.
Welche Technik Sie verwenden, hängt von einer Reihe von Faktoren ab, einschließlich der Version von Oracle und ob Sie nach einer reinen SQL-Lösung suchen. Wenn Sie Oracle 11.2 verwenden, würde ich wahrscheinlich vorschlagen, LISTAGG
zu verwenden
SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
FROM table_name
GROUP BY column1
Wenn Sie eine frühere Version von Oracle verwenden und keine reine SQL-Lösung benötigen, würde ich im Allgemeinen die benutzerdefinierte Aggregatfunktion bevorzugen.