Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Durchsuchen Sie eine Zeichenfolge nach einem regulären Ausdrucksmuster und ersetzen Sie jedes Vorkommen als Ableitung von sich selbst in Oracle SQL

Nicht Regexp, aber es funktioniert.

select  xmlcast( xmlquery('for $w in tokenize($text," ") return
    if(fn:matches($w,"[0-9]{1,3}")) then (xs:decimal($w)+$offset) else ($w)'
                passing 'i want to increase those numbers 20 and 15' as "text", 5 as "offset" returning content) as varchar2(1000))
  from dual;

Die Lösung sucht nach ganzen Zahlen im Text. Für dezimale interne Regex sollte erweitert werden.

\d und [:digit:] werden von xmlquery

nicht unterstützt