Una expresión regular para enmascarar teléfonos (con prefijo internacional).
SELECT result1 ORIGINAL_PHONE,
regexp_replace(
regexp_replace(result1,'[^[:digit:]+]',''), -- Remove non-digit and special phone characters
'^(00[[:digit:]]{2}|\+[[:digit:]]{2})([[:alnum:]]*)([[:alnum:]]{3})$', -- Phone pattern
'\1*\3') MASK_PHONE -- Mask
FROM (
WITH test AS
(SELECT '0034910000000,+34910000000' col1 FROM dual)
SELECT regexp_substr(col1, '[^,]+', 1, rownum) result1
FROM test
CONNECT BY LEVEL <= regexp_count(col1, ',') + 1);
El resultado es:
ORIGINAL_PHONE MASK_PHONE
---------------- ----------------
0034910000000 0034*000
+34910000000 +34*000