Bạn có thể sử dụng REGEXP_REPLACE kể từ Oracle 10:
SELECT REGEXP_REPLACE('+34 (947) 123 456 ext. 2013', '[^0-9]+', '')
FROM DUAL
Ví dụ này trả về 349471234562013
.
Các cú pháp thay thế bao gồm:
-
Các lớp ký tự POSIX:
'[^[:digit:]]+'
-
Các phần mở rộng bị ảnh hưởng bởi Perl (kể từ Oracle 11):
'\D+'