Tim Hall har en ganska kanonisk lista över tekniker för strängaggregation i Oracle.
Vilken teknik du använder beror på ett antal faktorer inklusive versionen av Oracle och om du letar efter en ren SQL-lösning. Om du använder Oracle 11.2, skulle jag förmodligen föreslå att du använder LISTAGG
SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
FROM table_name
GROUP BY column1
Om du använder en tidigare version av Oracle, förutsatt att du inte behöver en ren SQL-lösning, skulle jag i allmänhet föredra att använda den användardefinierade metoden för aggregerade funktioner.