TO_CHAR (number)
구문
TO_CHAR(n [, fmt [, 'nlsparam' ] ])
목적
TO_CHAR (number) 함수는 n을 VARCHAR2 데이터 유형의 값으로 변환합니다. 선택적인 숫자 형식 fmt을 사용할 수 있습니다. 값 n은 NUMBER, 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 '
문자 d와 g는 각각 소수점 문자와 그룹 구분 기호를 나타냅니다. 이들은 서로 다른 단일 바이트 문자여야 합니다. 따옴표로 묶인 문자열 내에서 매개 변수 값 주위에 두 개의 작은 따옴표를 사용해야 합니다. 통화 기호에는 열 글자를 사용할 수 있습니다.
'nlsparam' 또는 매개 변수 중 하나를 생략하면 이 함수는 세션의 기본 매개 변수 값을 사용합니다.
참고:
- "Security Considerations for Data Conversion"
- Oracle Database Globalization Support Guide의 부록 C는 이 함수의 문자열 반환 값에 할당된 콜레이션을 정의하는 정렬 파생 규칙(collation derivation rules)에 대한 정보를 제공합니다.
예제
다음 문장은 암시적 변환을 사용하여 문자열과 숫자를 결합하여 숫자로 변환합니다:
SELECT TO_CHAR('01110' + 1) FROM DUAL;
TO_C
----
1111
TO_CHAR (character)에 대한 첫 번째 예제와 이 예제를 비교해보세요.
다음 예제에서는 통화 기호의 왼쪽에 공백이 패딩되어 출력됩니다. 선택적인 숫자 형식 fmt에서 L은 로컬 통화 기호를 나타내고 MI는 끝에 마이너스 기호를 나타냅니다. 완전한 숫자 형식 요소 목록은 표 2-15를 참조하십시오. 이 예제는 세션 매개변수 NLS_TERRITORY가 AMERICA로 설정된 세션에서의 출력을 보여줍니다.
SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount"
FROM DUAL;
Amount
--------------
$10,000.00-
다음 예제에서 NLS_CURRENCY는 L 숫자 형식 요소에 사용할 로컬 통화 기호로 지정하는 문자열을 지정합니다. NLS_NUMERIC_CHARACTERS는 D 숫자 형식 요소에 사용할 소수점 구분자로 쉼표를, G 숫자 형식 요소에 사용할 그룹 구분자로는 마침표를 지정합니다. 이러한 문자들은 많은 국가에서 기대되는 것이며, 예를 들어 독일에서 사용됩니다.
SELECT TO_CHAR(-10000,'L99G999D99MI',
'NLS_NUMERIC_CHARACTERS = '',.''
NLS_CURRENCY = ''AusDollars'' ') "Amount"
FROM DUAL;
Amount
-------------------
AusDollars10.000,00-
다음 예제에서 NLS_ISO_CURRENCY는 C 숫자 형식 요소에 대해 폴란드(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) 함수 문서
댓글