LISTAGG
を使用することをお勧めします 。
SELECT col_id,
LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text
FROM table1
GROUP BY col_id
出力:
| COL_ID | TEXT |
----------------------------
| 111 | This|a|is|test. |
SQLFiddle
更新 リストで個別のテキスト値を取得する必要がある場合
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