sql >> Databáze >  >> RDS >> Oracle

Vyhledejte v řetězci vzor regulárního výrazu a nahraďte každý výskyt jako vlastní odvozeninu v Oracle SQL

Ne regulární výraz, ale funguje to.

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;

Řešení hledá celá čísla v textu. Pro desítkové vnitřní regulární výraz by měl být rozšířen.

\d a [:digit:] nejsou podporovány xmlquery



  1. Jak získat další hodnotu sekvence SQL Server v Entity Framework?

  2. SQL stejná jednotka mezi dvěma tabulkami potřebuje pořadová čísla v 1 buňce

  3. Číselné řazení varchar pole v MySQL

  4. mysql - sloupec nemůže mít hodnotu null