Tim Hall tem uma lista bastante canônica de técnicas de agregação de strings no Oracle.
A técnica que você usa depende de vários fatores, incluindo a versão do Oracle e se você está procurando uma solução puramente SQL. Se você estiver usando o Oracle 11.2, provavelmente sugiro usar
LISTAGG
SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
FROM table_name
GROUP BY column1
Se você estiver usando uma versão anterior do Oracle, supondo que não precise de uma solução puramente SQL, geralmente prefiro usar a abordagem de função agregada definida pelo usuário.