Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wyszukaj ciąg dla wzorca wyrażenia regularnego i zastąp każde wystąpienie jako jego pochodną w Oracle SQL

Nie regexp, ale działa.

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;

Rozwiązanie polega na szukaniu liczb całkowitych w tekście. W przypadku dziesiętnego wyrażenia regularnego należy rozszerzyć.

\d i [:digit:] nie są obsługiwane przez xmlquery



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołaj procedurę składowaną Oracle za pomocą funkcji createNativeQuery

  2. ora:12505:TNS:słuchacz nie zna obecnie SID podanego w deskryptorze połączenia (DBD ERROR:OCIServerAttach)

  3. Funkcja EXP() w Oracle

  4. jak wydrukować całą tabelę za pomocą anonimowego bloku w pl sql?

  5. Problem z wydajnością podczas aktualizacji tabeli z innej tabeli