지정한 문자데이터를 서식에 맞추어 수치데이터로 변환하는 함수입니다.
문법
사용 문법은 다음과 같습니다.
TO_NUMBER( 수치문자열데이터 [, 서식문자] [, NLS_PARAMETER] )
매개 변수 설명
매개 변수 | 내용 |
---|---|
수치문자열데이터 | 숫자로 변환 할 값입니다. 앞에서 언급 한 많은 데이터 유형 중 하나 일 수 있지만 가장 일반적으로 문자열로 제공됩니다. |
서식문자 | 출력 값을 표시해야하는 형식입니다. 아래에 설명 된 유효한 숫자 형식이어야합니다. |
NLS_PARAMETER | 이 값은 통화 기호 및 숫자와 같은 출력 값이 표시되는 방법을 결정하는 데 사용됩니다. |
사용 예(‘+1234’ , ‘S9999‘)
플러스 기호를 포함한 수치문자열데이터(‘+1234’)를 수치데이터로 변환하는 서식문자(S) 지정 예입니다.
SQL> select to_number('+1234', 'S9999') xyz from dual;
XYZ
----------
1234
플러스 기호를 포함한 수치문자열데이터(‘+1234’)를 수치데이터로 변환하는 경우 서식문자를 지정하지 않으면 다음과 같은 오류가 발생합니다.
SQL> select to_number('+1234', '9999') xyz from dual;
select to_number('+1234', '9999') xyz from dual
*
1행에 오류:
ORA-01722: 수치가 부적합합니다
사용 예(‘-12.34’, ‘S9999.99‘)
마이너스 기호, 소수점 기호를 포함한 수치문자열데이터(‘-12.34’)를 수치데이터로 변환하는 서식문자(S 와 .) 지정 예입니다.
SQL> select to_number('-12.34', 'S9999.99') xyz from dual;
XYZ
----------
-12.34
마이너스 기호를 포함한 수치문자열데이터(‘-12.34’)를 수치데이터로 변환하는 경우 서식문자(S) 를 지정하지 않아도 기본으로 표시됩니다.
SQL> select to_number('-12.34', '9999.99') xyz from dual;
XYZ
----------
-12.34
그렇치만, 다음과 같이 소수점이 존재하는 데이터에 소수점이 없는 서식문자를 지정하면 다음과 같은 오류가 발생합니다.
SQL> select to_number('-12.34', '999999') xyz from dual;
select to_number('-12.34', '999999') xyz from dual
*
1행에 오류:
ORA-01722: 수치가 부적합합니다
사용 예(‘12,345’, ‘99,999‘)
금액의 단위 기호를 포함한 수치문자열데이터(‘12,345’)를 수치데이터로 변환하는 서식문자(,)지정 예입니다.
SQL> select to_number('12,345', '99,999') xyz from dual;
XYZ
----------
12345
서식문자(,)를 지정하지 않았을 경우 예입니다. 이 경우에 오류를 발생하지 않습니다.
SQL> select to_number('12,345', '99999') xyz from dual;
XYZ
----------
12345
사용 예(NLS_CURRENCY)
통화기호 또는 명칭이 지정된 금액을 수치로 취득하는 방법은 다음과 같습니다. 서식 문자열 ‘999L’의 L은 지정된 ‘-999원’에 대해서 동일 위치의 로컬 통화 기호(NLS_CURRENCY)를 의미합니다.
SQL> select to_number('-999원','999L','NLS_CURRENCY = ''원''') xyz from dual;
XYZ
----------
-999
오류발생 예
TO_NUMBER함수 사용에 발생되는 오류에 대해서는 다음 글을 참조 하십시오.