sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg erstatte parenteser til bindestreger i Oracle REGEXP_REPLACE-funktionen?

For at erstatte symboler skal du bruge OVERSÆT funktion, er den mindre processorkrævende end regulære udtryksfunktioner:

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

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

Regulære udtryk er mere alsidige og kan gøre mere komplekse ting, men er dyrere. I dette tilfælde udføres udskiftning af et tegn med et andet mere effektivt af en specialiseret funktion. Hvis du virkelig vil bruge regulære udtryk, kan du bruge REGEXP_REPLACE :

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

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

Opdatering:Hvis du kun vil erstatte det første symbol, virker oversættelse ikke. Brug i stedet:

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

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



  1. hvordan man indstiller django og mysql til at fungere med UTF-8

  2. hvordan man opdaterer id fra en tabel til en anden

  3. Hvordan bruger jeg CREATE OR REPLACE?

  4. Oracle PL/SQL HTTP-anmodningssvar-kodningsproblem