형 변환 함수
오라클은 다양한 데이터 종류의 자료형을 제공한다. 잘못된 자료형의 사용으로 인해 즉, 잘못된 형 변환으로 인해 오류가 발생한다.
Query
출력값
사원 'SCOTT'의 사원번호와 문자열 'ABCD'를 사원번호와 합친 데이터를 출력하려했다. 하지만 문자열+숫자는 타입이 맞지않아 'invalid number'에러 즉 수치가 부적합하다는 오류가 발생했다. 이처럼 형번환의 문제를 해결하기 위해 오라클은 다음과 같이 세 종류의 형 변환 함수를 제공한다.
종류 | 설명 |
TO_CHAR | 숫자 또는 날짜 데이터를 문자 데이터로 변환 |
TO_NUMBER | 문자 데이터를 숫자 데이터로 변환 |
TO_DATE | 문자 데이터를 날짜 데이터로 변환 |
날짜, 숫자 데이터를 문자 데이터로 변환하는 TO_CHAR 함수
TO_CHAR 함수는 숫자, 날짜 데이터를 문자 데이터로 변환 해준다. 기본 형식은 다음과 같다.
▶TO_CHAR([날짜데이터(필수)], '[출력되길 원하는 문자 형태(필수)]')
현재 날짜와 시간을 '연/월/일 시:분:초' 형태로 출력하려한다면, 다음과 같이 SELECT문에 TO_CHAR함수를 사용할 수 있다.
Query
출력값
날짜 데이터를 변환하기 위해선 포맷에 대해 알아야 한다. 자주 쓰이는 날짜 표현 형식은 아래와 같다.
형식 | 설명 |
CC | 세기 |
YYYY, RRRR | 연(4자리 숫자) |
YY, RR | 연(2자리 숫자) |
MM | 월(2자리 숫자) |
MON | 월(언어별 월 이름 약자) |
MONTH | 월(언어별 월 이름 전체) |
DD | 일(2자리 숫자) |
DDD | 1년 중 며칠(1~366) |
DY | 요일(언어별 요일 이름 약자) |
DAY | 요일(언어별 요일 이름 전체) |
W | 1년 중 몇 번째 주 (1~53) |
문자 데이터를 숫자 데이터로 변환하는 TO_NUMBER 함수
다음으로는 문자데이터를 숫자 데이터로 변환하는 TO_NUMBER 함수를 알아보겠다. TO_NUMBER 함수를 사용함으로써 '문자열+숫자'과 같이 다른 형태의 타입이라도 형 변환하여 출력이 가능하도록 한다.
▶TO_NUMBER('[문자열 데이터(필수)]', '[인식될 숫자형태(필수)]')
Query
출력값
'1,300'이라는 문자열과 '1,500'이라는 문자열을 숫자로 변환하여 결과값으로 -200이라는 값을 출력했다.
문자 데이터를 날짜 데이터로 변환하는 TO_DATE 함수
TO_DATE 함수를 사용하면 문자열 데이터를 날짜 데이터로 바꿀 수 있다. 기본 형식은 아래와 같다
▶TO_DATE('[문자열 데이터(필수)]', '[인식될 날짜형태(필수)]')
2022-02-09, 20220209와 같은 문자 데이터를 날짜 데이터로 바꿔보자.
Query
출력값
위와 같이 문자열이 해당 날짜 데이터로 출력된 것을 확인할 수 있다. 날짜 데이터는 간단한 연산이 가능하다. 예를 들어 입사일(HIREDATE)이 1981년 6월 1일 이후인 사원들을 찾는 쿼리문을 작성하면 아래와 같다.
Query
출력값
출처:Do it! 오라클로 배우는 데이터베이스 입문(저자:이지훈 출판사:이지스퍼블리싱)
'DB > Oracle' 카테고리의 다른 글
[오라클 함수] 상황에 따라 다른 데이터를 반환하는 DECODE 함수와 CASE문 (0) | 2022.02.10 |
---|---|
[오라클 함수] NULL 처리 함수 (0) | 2022.02.10 |
[오라클 함수] 날짜 함수 (0) | 2022.02.09 |
[오라클 함수] 문자함수 (0) | 2022.02.07 |
WHERE절과 연산자 (0) | 2022.01.27 |