STUDY/SQL

자동 데이터 타입 변환

sorrow16 2021. 4. 19. 12:10

 

SQL문을 조작할 때 오라클 데이터베이스 시스템은 특정한 경우에 데이터 타입을 자동으로 변환합니다.

 

예를 들어 오라클 데이터베이스 시스템에 VARCHAR2 타입으로 입력되어 있는 데이터 값 100은 NUMBER 타입으로 자동 변환되어 산술 계산될 수 있고, 숫자 타입 데이터 값 100은 VARCHAR2 타입으로 자동 변환되어 저장될 수 있습니다.

 

이런 경우 데이터 타입을 목표(target) 값의 데이터 타입으로 변환할 수 있는 경우에만 SQL 문이 올바르게 수행됩니다. 혜를 들어 문자열을 숫자로 나타낼 수 있는 경우헤만 VARCHAR2 타입이 NUMBER 타입으로 변환되며, 문자열이 데이터베이스 시스템에 설정된 날짜 데이터 타입과 같은 경우에만 VARCHAR2 타입이 DATE 타입으로 변환됩니다.

 

자동 데이터 타입 변환 유형은 다음과 같습니다.

 

※자동 데이터 타입 변환 유형

FROM

TO

VARCHAR2 혹은 CHAR

NUMBER(숫자)

VARCHAR2 혹은 CHAR

DATE(날짜)

NUMBER

VARCHAR2(문자)

DATE

VARCHAR2(문자)

 

 

 

 

SELECT 1 + '2' <----- 작은 따옴표('')로 묶었기 때문에 문자 데이터 타입 FROM DUAL;

 

결과>

 

 

SELECT 절의 산술 연산 부분을 살펴보면 '2'는 작은 따옴표로 묶여 있으므로 숫자가 아닌 문자입니다. 그럼에도 불구하고 결과는 3이라고 바르게 연산되어 출력됩니다. 오라클 데이터베이스 시스템이 계산을 위해 문자 '2'를 자동으로 숫자 2로 변환하여 계산했기 때문입니다. 이것을 데이터베이스 시스템에 의한 자동 데이터 타입 변환이라고 합니다.

 

다만 데이터 타입 변환을 이용할 수 있더라고 SQL 문의 성능과 안정성을 위해 수동 데이터 타입 변환으로 수행할 것을 권장합니다.