Tom Kyte giver en meget praktisk måde at gøre det på, og det fungerer fra Oracle 9i med en tilpasset aggregeringsfunktion. Det aggregeres med kommaer, men du kan ændre funktionsteksten for rør.
Fra og med Oracle 11g kan du gøre:
SELECT LISTAGG(column, separator) WITHIN GROUP (ORDER BY field)
FROM dataSource
GROUP BY grouping columns
Denne webside indeholder yderligere metoder, inklusive den, du har angivet, og som faktisk ikke er rigtig effektiv.