Tom Kyte proporciona una manera muy conveniente de hacerlo y funciona desde Oracle 9i, con una función de agregación personalizada. Se agrega con comas, pero puede modificar el cuerpo de la función para canalizaciones.
A partir de Oracle 11g, puede hacer:
SELECT LISTAGG(column, separator) WITHIN GROUP (ORDER BY field)
FROM dataSource
GROUP BY grouping columns
Esta página web proporciona métodos adicionales, incluido el que enumeró y que, de hecho, no es realmente eficiente.