Tim Hall a une jolie liste canonique des techniques d'agrégation de chaînes dans Oracle.
La technique que vous utilisez dépend d'un certain nombre de facteurs, notamment la version d'Oracle et si vous recherchez une solution purement SQL. Si vous utilisez Oracle 11.2, je suggérerais probablement d'utiliser LISTAGG
SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
FROM table_name
GROUP BY column1
Si vous utilisez une version antérieure d'Oracle, en supposant que vous n'avez pas besoin d'une solution purement SQL, je préférerais généralement utiliser l'approche de la fonction d'agrégation définie par l'utilisateur.