Vous pouvez utiliser REGEXP_REPLACE depuis Oracle 10 :
SELECT REGEXP_REPLACE('+34 (947) 123 456 ext. 2013', '[^0-9]+', '')
FROM DUAL
Cet exemple renvoie 349471234562013
.
Les syntaxes alternatives incluent :
-
Classes de caractères POSIX :
'[^[:digit:]]+'
-
Extensions influencées par Perl (depuis Oracle 11) :
'\D+'