sql >> Database >  >> RDS >> Oracle

Hoe kan ik haakjes vervangen door koppeltekens binnen de Oracle REGEXP_REPLACE-functie?

Om symbolen te vervangen, gebruikt u de TRANSLATE functie, het is minder processorintensief dan reguliere expressiefuncties:

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

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

Reguliere expressies zijn veelzijdiger en kunnen complexere dingen doen, maar zijn duurder. In dit geval wordt het vervangen van het ene teken door het andere efficiënter gedaan door een gespecialiseerde functie. Als je echt reguliere expressies wilt gebruiken, kun je REGEXP_REPLACE :

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

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

Update:als u alleen het eerste symbool wilt vervangen, werkt vertalen niet. Gebruik in plaats daarvan:

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

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



  1. MySQL 'Order By' - alfanumeriek correct sorteren

  2. MySQL toetreden en uitsluiten?

  3. ODP.NET-verbinding pooling:hoe weet u of een verbinding is gebruikt?

  4. mysql slaat automatisch tijdstempel voor het maken van records op