Vous voudrez peut-être utiliser LISTAGG
.
SELECT col_id,
LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text
FROM table1
GROUP BY col_id
Sortie :
| COL_ID | TEXT |
----------------------------
| 111 | This|a|is|test. |
SQLFiddle
MISE À JOUR Si vous avez besoin d'obtenir des valeurs de texte distinctes dans une liste
SELECT col_id,
LISTAGG(col_text, '|')
WITHIN GROUP (ORDER BY col_text) text
FROM
(
SELECT DISTINCT col_id, col_text
FROM table1
)
GROUP BY col_id
SQLFiddle