Oracle の文字列から文字 -、+、(、)、およびスペースを削除する必要があります。文字列内の他の文字はすべて数字になります。これを行うことができる関数は REGEXP_REPLACE です。正しい正規表現を書く手助けが必要です。
例: 文字列 '23+(67 -90' は '236790' を返す必要があります 文字列 '123456' は '123456' を返す必要があります
何かのようなもの
SQL> ed
Wrote file afiedt.buf
1 with data as (
2 select 'abc123def456' str from dual union all
3 select '23+(67 -90' from dual union all
4 select '123456' from dual
5 )
6 select str,
7 regexp_replace( str, '[^[:digit:]]', null ) just_numbers
8* from data
SQL> /
STR JUST_NUMBERS
------------ --------------------
abc123def456 123456
23+(67 -90 236790
123456 123456
するべきです。これにより、数字以外の文字が文字列から削除されます。
\D
またはを検索し[\-\+, ]
、空の文字列に置き換えます''