sql >> Databáze >  >> RDS >> Oracle

Jak mohu nahradit závorky pomlčkami ve funkci Oracle REGEXP_REPLACE?

K nahrazení symbolů použijte TRANSLATE funkce, je méně náročná na procesor než funkce regulárních výrazů:

SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;

REPLACED
--------
-<FIO>-

Regulární výrazy jsou všestrannější a mohou dělat složitější věci, ale jsou dražší. V tomto případě je nahrazení jednoho znaku jiným provedeno efektivněji specializovanou funkcí. Pokud opravdu chcete používat regulární výrazy, můžete použít REGEXP_REPLACE :

SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;

REG
---------
--<FIO>--

Aktualizace:Pokud chcete nahradit pouze první symbol, překlad nebude fungovat. Místo toho použijte:

SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;

REG
---------
-(<FIO>)]



  1. Dotaz pomocí dvou hodnot sloupce vytvořit rozsah

  2. Chyba zavaděče SQL:Pole proměnné délky překračuje maximální délku.

  3. Jak rozdělit jeden řádek na více sloupců v mysql

  4. R- Speciální znaky se do mysql nevkládají