Пример использования регулярного выражения (regexp_replace)
— оставить только буквы
— оставить только цифры
with t as (select '#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер' str from dual)
select str
, regexp_replace(str,'[^[[:alpha:]]]*') as only_char
, regexp_replace(str,'[^[[:digit:]]]*') as only_number
from t
/
STR ONLY_CHAR ONLY_NUMBER
--------------------------------- ------------------------ --------------------
#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер appsORACLEruПРИмер 2013

а что * в начале строки означает?
@1
Это затесалось лишнее, убрал. Спасибо
да и вообще, можно так, например, написать
WITH t AS
(SELECT ‘#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер’ Str FROM Dual)
SELECT Str,
Regexp_Replace(Str, ‘\d’) AS Only_Char,
Regexp_Replace(Str, ‘\D’) AS Only_Number
FROM t;
@1
Regexp_Replace(Str, ‘\d’) возвращает лишнее
WITH t AS (SELECT '#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер' Str FROM Dual) SELECT Str, Regexp_Replace(Str, '[[:digit:]]') AS Only_Char, Regexp_Replace(Str, '[^[:digit:]]') AS Only_Number FROM t;WITH t AS (SELECT '#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер' Str FROM Dual) SELECT Str, Regexp_Replace(Str, '[^[:alpha:]]') AS Only_Char, Regexp_Replace(Str, '[^[:digit:]]') AS Only_Number FROM t«– оставить только символы»
Я бы сказал не символы а буквы, так как ‘#’, ‘(‘, ‘_’ … тоже символы.
+ цифры
@a