TO_NUMBER

Syntax

TO_NUMBER
(
  value  IN { text | smallint | int | bigint | double precision | numeric }
)
RETURNS numeric;

TO_NUMBER
(
  value  IN numeric,
  fmt    IN numeric
)
RETURNS numeric;

개요

입력된 문자열 또는 숫자형 값을 Oracle 스타일의 숫자(numeric)로 변환한다.

텍스트로 입력된 경우, 로케일 설정에 따라 소수점 및 천 단위 구분 문자를 조정한 후 숫자 형식 문자열을 숫자로 변환한다.

또한, smallint, int, bigint, double precision 타입 값은 각 타입 전용 내부 로직을 통해 numeric 타입으로 변환된다.

numeric 타입의 입력은 그대로 반환 되며, 포맷 모델(fmt)이 제공되면 PG 기본 내장 함수(pg_catalog.to_number) 함수를 이용해 추가 변환 형식을 적용할 수 있다.

파라미터

파라미터
설명

value

text, smallint, int, bigint, double precision, numeric 타입이다; 변환할 대상 값이다.

fmt

numeric 타입이다; 텍스트 입력에 대해 적용할 숫자 형식을 지정하는 포맷 모델이다. (예: '99999.99').

지원하는 포멧 모델은 PG 공식 문서 를 참조한다.

* 숫자 포멧 모델

예제

-- 텍스트를 numeric로 변환 (기본 변환)
SELECT oracle.TO_NUMBER('12345.67');

 to_number 
-----------
  12345.67
(1 row)

-- numeric 값과 numeric 값 포맷 모델을 사용하여 numeric 변환
SELECT oracle.TO_NUMBER(12345.12467, 99999.9);

 to_number 
-----------
   12345.1
(1 row)

-- 정수형 값을 numeric로 변환
SELECT oracle.TO_NUMBER(12345::int);

 to_number 
-----------
     12345
(1 row)


-- double precision 값을 numeric로 변환
SELECT oracle.TO_NUMBER(12345.67::double precision);

 to_number 
-----------
  12345.67
(1 row)

Last updated