본문 바로가기

[오라클 레퍼런스 함수] TO_CHAR (number) - 숫자를 문자열로 변환

by ㅇㅍㅍ 2023. 8. 29.
[오라클 레퍼런스 함수] TO_CHAR (number) - 숫자를 문자열로 변환
728x90

 

TO_CHAR (number)

 

구문

TO_CHAR(n [, fmt [, 'nlsparam' ] ])

 

목적

TO_CHAR (number) 함수는 nVARCHAR2 데이터 유형의 값으로 변환합니다. 선택적인 숫자 형식 fmt을 사용할 수 있습니다. 값 nNUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형일 수 있습니다. fmt를 생략하면 n은 해당 유의 숫자를 포함할 수 있을 정도로 충분한 길이의 VARCHAR2 값으로 변환됩니다.

n이 음수인 경우 형식이 적용된 후에 부호가 적용됩니다. 따라서 TO_CHAR(-1, '$9')은 $-1이 아닌 -$1을 반환합니다.

숫자 형식에 대한 정보는 "Format Models"을 참조하십시오.

'nlsparam' 인수는 숫자 형식 요소에 의해 반환되는 다음 문자를 지정합니다.

  • 소수점 문자
  • 그룹 구분 기호
  • 로컬 통화 기호
  • 국제 통화 기호

이 인수는 다음 형식을 사용할 수 있습니다.

'NLS_NUMERIC_CHARACTERS = ''dg''
   NLS_CURRENCY = ''text''
   NLS_ISO_CURRENCY = territory '

 

문자 dg는 각각 소수점 문자와 그룹 구분 기호를 나타냅니다. 이들은 서로 다른 단일 바이트 문자여야 합니다. 따옴표로 묶인 문자열 내에서 매개 변수 값 주위에 두 개의 작은 따옴표를 사용해야 합니다. 통화 기호에는 열 글자를 사용할 수 있습니다.

'nlsparam' 또는 매개 변수 중 하나를 생략하면 이 함수는 세션의 기본 매개 변수 값을 사용합니다.

 

참고:

 

예제

다음 문장은 암시적 변환을 사용하여 문자열과 숫자를 결합하여 숫자로 변환합니다:

SELECT TO_CHAR('01110' + 1) FROM DUAL;

TO_C
----
1111

 

TO_CHAR (character)에 대한 첫 번째 예제와 이 예제를 비교해보세요.

다음 예제에서는 통화 기호의 왼쪽에 공백이 패딩되어 출력됩니다. 선택적인 숫자 형식 fmt에서 L은 로컬 통화 기호를 나타내고 MI는 끝에 마이너스 기호를 나타냅니다. 완전한 숫자 형식 요소 목록은 표 2-15를 참조하십시오. 이 예제는 세션 매개변수 NLS_TERRITORYAMERICA로 설정된 세션에서의 출력을 보여줍니다.

SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount"
     FROM DUAL;

Amount
--------------
  $10,000.00-

 

다음 예제에서 NLS_CURRENCYL 숫자 형식 요소에 사용할 로컬 통화 기호로 지정하는 문자열을 지정합니다. NLS_NUMERIC_CHARACTERSD 숫자 형식 요소에 사용할 소수점 구분자로 쉼표를, G 숫자 형식 요소에 사용할 그룹 구분자로는 마침표를 지정합니다. 이러한 문자들은 많은 국가에서 기대되는 것이며, 예를 들어 독일에서 사용됩니다.

SELECT TO_CHAR(-10000,'L99G999D99MI',
   'NLS_NUMERIC_CHARACTERS = '',.''
   NLS_CURRENCY = ''AusDollars'' ') "Amount"
     FROM DUAL;

Amount
-------------------
AusDollars10.000,00-

 

다음 예제에서 NLS_ISO_CURRENCYC 숫자 형식 요소에 대해 폴란드(POLAND) 지역의 국제 통화 기호를 사용하도록 데이터베이스에 지시합니다.

SELECT TO_CHAR(-10000,'99G999D99C',
   'NLS_NUMERIC_CHARACTERS = '',.''
   NLS_ISO_CURRENCY=POLAND') "Amount"
     FROM DUAL;

Amount
-----------------
    -10.000,00PLN

 

TO_CHAR (number) 함수: 예제

다음 문장들은 empl_temp라는 테이블을 생성하고 직원 세부 정보로 채웁니다.

CREATE TABLE empl_temp 
  ( 
     employee_id NUMBER(6), 
     first_name  VARCHAR2(20), 
     last_name   VARCHAR2(25), 
     email       VARCHAR2(25), 
     hire_date   DATE DEFAULT SYSDATE, 
     job_id      VARCHAR2(10), 
     clob_column CLOB 
  );

INSERT INTO empl_temp
VALUES(111,'John','Doe','example.com','10-JAN-2015','1001','Experienced Employee');

INSERT INTO empl_temp
VALUES(112,'John','Smith','example.com','12-JAN-2015','1002','Junior Employee');

INSERT INTO empl_temp
VALUES(113,'Johnnie','Smith','example.com','12-JAN-2014','1002','Mid-Career Employee');

INSERT INTO empl_temp
VALUES(115,'Jane','Doe','example.com','15-JAN-2015','1005','Executive Employee');

 

다음 문장은 숫자 데이터를 데이터베이스 문자 집합으로 변환합니다.

SELECT To_char(employee_id) "NUM_TO_CHAR" 
FROM   empl_temp 
WHERE  employee_id IN ( 111, 112, 113, 115 );

NUM_TO_CHAR
--------------------
111
112
113
115

 

Live SQL: Oracle Live SQL에서 Using the TO_CHAR Function 예제를 보고 실행하세요.

 


출처: 오라클 레퍼런스

원문 링크: Oracle TO_CHAR (number) 함수 문서

 

반응형

댓글