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