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