sql >> Base de Datos >  >> RDS >> Oracle

Oracle:reemplazo de caracteres no numéricos en una cadena

Puede usar REGEXP_REPLACE desde Oracle 10:

SELECT REGEXP_REPLACE('+34 (947) 123 456 ext. 2013', '[^0-9]+', '')
FROM DUAL

Este ejemplo devuelve 349471234562013 .

Las sintaxis alternativas incluyen:

  • Clases de caracteres POSIX:

    '[^[:digit:]]+'
    
  • Extensiones influenciadas por Perl (desde Oracle 11):

    '\D+'