はるかに高速な translate()<を使用します。 / code>
この単純なケースの場合:
UPDATE tbl SET text = translate(text, '(;<>)', '');
3番目のパラメーターに対応するものがない2番目のパラメーターのすべての文字は、何にも置き換えられません。
正規表現ソリューションは次のようになります。
regexp_replace(text, '[(;<>)]', '', 'g');
必須要素は4番目のパラメーター'g'
最初の一致だけでなく、「グローバルに」置き換える。 2番目のパラメータは文字クラスです。
あなたは正しい方向に進んでいました。 regexp_replace()
。
UPDATE
のヒント
すべてを期待しない場合 行を変更する場合は、 UPDATE
を調整することを強くお勧めします ステートメント:
UPDATE tbl
SET text = translate(text, '(;<>)', '')
WHERE text <> translate(text, '(;<>)', '');
このようにして、(高価な)空の更新を回避します。 ( NULL
この特定のケースでは自動的にカバーされます。)