달바라기
[오라클] to_number 함수 오류 처리 본문
뭐.. 따로 방법이 없더군요.
그냥 정규식을 써서 처리해 봤습니다.
select a, b,
decode(REGEXP_REPLACE(trim(b),
'^-?[0-9]+((\.[0-9]+)([Ee][+-][0-9]+)?)?', ''), null, '숫자', '문자') flag,
decode(REGEXP_REPLACE(trim(b),
'^-?[0-9]+((\.[0-9]+)([Ee][+-][0-9]+)?)?', ''), null, to_number(trim(b))) val
from (select 1 a, '1234' b from dual union
select 2 a, '-1.234E+04' b from dual union
select 3 a, '1.234E+04' b from dual union
select 3 a, '1a234E+04' b from dual union
select 4 a, '(-1.234E+04)' b from dual)
설명은 필요 없겠죠? ^^
그냥 정규식을 써서 처리해 봤습니다.
select a, b,
decode(REGEXP_REPLACE(trim(b),
'^-?[0-9]+((\.[0-9]+)([Ee][+-][0-9]+)?)?', ''), null, '숫자', '문자') flag,
decode(REGEXP_REPLACE(trim(b),
'^-?[0-9]+((\.[0-9]+)([Ee][+-][0-9]+)?)?', ''), null, to_number(trim(b))) val
from (select 1 a, '1234' b from dual union
select 2 a, '-1.234E+04' b from dual union
select 3 a, '1.234E+04' b from dual union
select 3 a, '1a234E+04' b from dual union
select 4 a, '(-1.234E+04)' b from dual)
설명은 필요 없겠죠? ^^