sql >> Databasteknik >  >> RDS >> Oracle

Sök i en sträng efter ett reguljärt uttrycksmönster och ersätt varje förekomst som en härledning av sig själv i oracle SQL

Inte regexp men det wokrs.

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;

Lösningen letar efter heltal i text. För decimal bör internt regex utökas.

\d och [:digit:] stöds inte av xmlquery



  1. Postgres - hur man krypterar en kolumn och hans data

  2. Varför kombinerar PostgreSQL serier på ett felaktigt sätt?

  3. join på två främmande nycklar från samma tabell i SQL

  4. Regex fångar de första orden före tecken därefter - orakel