Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Pesquise uma string por um padrão de expressão regular e substitua cada ocorrência como uma derivação de si mesma no Oracle SQL


Não regexp, mas funciona.
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;

A solução está procurando por números inteiros no texto. Para decimal interno regex deve ser estendido.

\d e [:digit:] não são suportados por xmlquery