Oracle 10g представил функции регулярных выражений REGEXP_SUBSTR, REGEXP_REPLACE, REGEXP_INSTR и REGEXP_LIKE, поэтому они не будут работать в Oracle 9i.
Вместо этого можно использовать 2 TRANSLATE () призывает a) найти все используемые нецифровые символы, затем b) удалить все эти нецифровые символы, оставив только цифры:
select
translate (mix_string,'x0123456789','x') non_digits
, translate (mix_string,'0'||translate (mix_string,'x0123456789','x'),'0') only_digits
from (
select '1a2b3c4d5e6f7h8i9j0k' mix_string
from dual
union all
select '1amn2bxd3clp4d5e(*^(&6f7hsaxz8i9j0k' mix_string
from dual
)
| | NON_DIGITS | ONLY_DIGITS |
|----|---------------------------|-------------|
| 1 | abcdefhijk | 1234567890 |
| 2 | amnbxdclpde(*^(&fhsaxzijk | 1234567890 |
см .: http://rextester.com/EMS52462