함수 - 변환 함수

함수 - 변환 함수

변환 함수는 데이터 타입을 다른 데이터 타입으로 변환하는 함수이다. 데이터 타입의 변화는 오라클 데이터베이스에서 자동으로 형변환 해주는 암시적인 데이터 타입 변환과 직접 변환 함수를 사용하는 형변환으로 구분된다.

그리고 직접 형변환 함수를 사용하는 경우는 다음과 같은 관계를 가진다.
일반적으로 두 개의 인자를 받는데, 첫 번째 인자는 변경을 원하는 데이터, 두 번째 인자는 변경된 데이터의 format을 설정한다.

먼저 문자형 변환함수부터 살펴보도록 하겠다.

  • to_char()
일단 date자료형을 문자열로 변경해보자. 이를 위해서 첫 번째 인자로 data를 넣고, 두 번째 인자로 변환 데이터의 format을 넣는다.

먼저 연도를 출력해보겠다.
2018이 출력되고 있음을 확인할 수 있다.

월에 대해서도 똑같이 적용할 수 있다.

그리고 이때 fm이라는 format의 약자를 앞에 써주는 것이 원칙이다. 물론 쓰지 않아도 위의 예시들에서 보듯 잘 출력되고 있다.


다음은 연, 월, 일을 출력해보겠다. 일 >  월 > 연도 순으로 출력되도록 다음처럼 작성해주었다. 그리고 MONTH는 10g 이상 오라클 버전부터는 한글로 표기하도록 업데이트 되었다.
위의 표를 참조하여 원하는 format으로 출력이 이루어지도록 할 수 있다.

시, 분, 초에 대한 format 역시 존재한다.

기타 표현 양식에 대해서도 참고만 하도록 하자.


다음은 숫자 데이터를 to_char를 이용하여 문자형으로 전환하는 것에 대해 설명하도록 하겠다.

먼저 숫자 데이터에서 사용하는 format을 살펴보자.

이 중 L을 사용해보도록 하겠다.
다음처럼 to_char에서 두 번째 인자에서 format을 결정하는데 이 때 맨 앞자리에 L을 붙이자.
이렇게 문자열로 자료형이 변경되며, 화폐 표시까지 추가되고 있다.

다음은 문자열 자료형을 숫자형으로 바꾸는 형변환 함수이다.
  • to_number()
sql은 기본적으로 형변환을 내장하고 있다. 따라서 다음 예시처럼 to_number()를 사용하지 않아도 문자로 표현된 숫자데이터의 경우 연산 시 자동형변환을 진행한다.

하지만 $표시처럼 문자가 함께 있는 숫자데이터의 경우 자동형변환이 되진 않는다.

이 경우에는 다음처럼 to_number(데이터, 데이터 표현방식)을 통해 다음의 데이터는 어떤 표현방식으로 되어있는지를 알리면 형변환이 가능하다.

뿐만 아니라 이 데이터를 다시 $를 포함하는 문자 데이터로 바꿀 수도 있다. 먼저 10을 더해주기 위해서 $100을 숫자로 바꾸고, 이를 위해서 $999라는 현재 상태의 format을 전달한다.

  • to_date()
숫자와 문자 외에도 날짜 형식으로 바꿔줄 수도 있다. 그리고 이 경우 문자 데이터에 대해서만 형변환이 가능하다.

댓글

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 변수선언

데이터베이스 PL/SQL 제어문 - 반복문