with t as ( select 1 id, 'a s sfd' info from dual union all select 2 id, 'a b; g;g ;g f' info from dual union all select 3 id, 'a ' info from dual union all select 4 id, ' ' info from dual ) SELECT id, REGEXP_REPLACE(TRIM(info), ' *', ' ') AS info_new FROM t ORDER BY id;
Пример:
ID INFO_NEW ---------- -------------------------------------------------------------------------------- 1 a s sfd 2 a b; g;g ;g f 3 a 4
отличный сайт, мне очень понравился, спасибо автору
Вместо * (встречается 0 и более раз) должен быть + (встречается 1 и более раз). С * пробелы расставит между всеми символами.
@Марк
пробелы расставит между всеми символами — а подтверждение есть? Я вот вижу в тесте выше, что все хорошо.
@rudev
у вас какие то особенные пробелы :D проверил — вроде как у вас. заменил пробел на \s — все как должно быть, расставило пробелы везде, поставил свой пробел — тоже. Копайте в сторону кодировки
отличный пример!!!!
Респект автору!!!
@rudev
есть, у меня тоже самое