regexp_replace()
мощный, универсальный ... и медленно.
Если вы можете, используйте простой (менее мощный и универсальный) replace()
, который намного быстрее.
Для простого случая (замените список одиночных символов другим символом) используйте translate()
- еще проще и быстрее. А также гораздо меньше ошибок.
UPDATE tbl
SET col = translate(col, ',;: ', '____')
WHERE col <> translate(col, ',;: ', '____'); -- avoid empty updates
Только обновить строки, которые фактически меняются. Это обычная (возможно, дорогостоящая) ошибка для безошибочного обновления всех строк. Реквизиты:
Обратите внимание, что это только заменяет символ пробела (' '
) в то время как класс сокращенная \s
в регулярном выражении соответствует всем whitespace characters от класса персонажа [[:space:]]
.
Использовать 'regexp_replace' –
@CraigRinger Пробовал это с помощью' '{', ',': ',' '}' 'например, без везения, если вы захотите опубликовать рабочий ответ, я был бы рад принять Это. – John
Если ваши «строки» на самом деле являются одиночными символами, как показано на рисунке, не используйте для этого 'regexp_replace()', это будет дороже и сложнее, чем необходимо. –