Tim Hall ha un elenco piuttosto canonico di tecniche di aggregazione di stringhe in Oracle.
La tecnica che utilizzi dipende da una serie di fattori, tra cui la versione di Oracle e se stai cercando una soluzione puramente SQL. Se stai usando Oracle 11.2, probabilmente suggerirei di usare LISTAGG
SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
FROM table_name
GROUP BY column1
Se stai utilizzando una versione precedente di Oracle, supponendo che tu non abbia bisogno di una soluzione puramente SQL, in genere preferirei utilizzare l'approccio della funzione aggregata definita dall'utente.