Използвайте много по-бързия translate()код>
за този прост случай:
UPDATE tbl SET text = translate(text, '(;<>)', '');
Всеки знак във втория параметър, който няма аналог в третия параметър, се заменя с нищо.
Решението за регулярен израз може да изглежда така:
regexp_replace(text, '[(;<>)]', '', 'g');
Съществен елемент е 4-тият параметър 'g'
да замени "глобално", вместо само първия мач. Вторият параметър е символен клас.
Бяхте на прав път, просто въпрос на синтаксис за regexp_replace()
.
Съвет за АКТУАЛИЗАЦИЯ
Ако не очаквате всички редове, които трябва да бъдат променени, силно препоръчвам да адаптирате своя АКТУАЛИЗАЦИЯ
изявление:
UPDATE tbl
SET text = translate(text, '(;<>)', '')
WHERE text <> translate(text, '(;<>)', '');
По този начин избягвате (скъпи) празни актуализации. (NULL
се покрива автоматично в този конкретен случай.)