이번 글에서는 ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임 에러 해결 방법에 대하여 알아보겠습니다.
ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임
ORA-00932: "inconsistent datatypes: expected CHAR got NUMBER"
쿼리를 짜다가 다음과 같은 에러가 발생하였습니다.
예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.
아래의 쿼리는 deptno 컬럼이 0보다 작으면 0 그렇지 않으면 0을 조회하려고 작성한 예제입니다.
위의 쿼리를 실행하니 ORA-00932: "inconsistent datatypes: expected CHAR got NUMBER" 에러가 발생하였습니다.
에러가 발생한 이유는 THEN 절에서 문자열인 '0'을 받아왔으면 ELSE 절에서도 문자열을 받아와야 하는데 숫자형인 0을 받고 있습니다.
즉, THEN절의 데이터 타입과 ELSE절의 데이터 타입이 일치하지 않습니다.
해결 방법
THEN 절의 데이터 타입과 ELSE 절의 데이터 타입을 일치시킵니다.
THEN절의 타입과 ELSE절의 타입을 둘 다 문자열로 줘서 다시 실행해 보도록 하겠습니다.
THEN절과 ELSE절 모두 VARCHAR2 타입으로 가져오니까 에러 없이 정상적으로 작동이 잘 되는 것을 확인하실 수 있습니다.