oracle中可以通过以下方式处理
select str,
trim(translate(str, '-.#+0123456789', ' # ')) dw,
translate(str, '-.+0123456789' || str, '-.+0123456789') num
from (select '3.4mm/kg' as str
from dual
union all
select '-1.2mm' as str
from dual
union all
select '+0.34md' as str
from dual
union all
select '-3.23N' as str
from dual
union all
select '+3.4KN' as str
from dual
union all
select '20.36°' as str
from dual
union all
select '35.36℃' as str
from dual
)
;