본문 바로가기
Error

[ORACLE] 오라클 ORA-01722: 수치가 부적합합니다. - DECODE 사용 시 주의사항

by ssollacc 2022. 8. 18.
728x90

데이터 타입이 일치하지 않는 경우 발생하는 오류이다.

 

하지만 아~무리 쿼리를 확인해도 데이터 타입은 전부 일치했다.

이럴 때 정말 당황스럽다..^____^

 

어찌 감으로 해결했는데

원인은 DECODE 사용할 때 함수 결과 데이터 타입이 일치하지 않아서였다.

 

예를 들어

DECODE( ? , 'Y', 1000 , 'FREE') as price

? 에는 'N'이나 'Y'만 온다고 가정할 때,

? = 'N' 일 경우 price는 문자열인 'FREE'가 되고,

? = 'Y' 일 경우 price는 숫자(넘버)인 1000이 된다.

 

결론: 함수 결과의 데이터 타입도 맞춰야 한다.!

 

 

 

 

이외 기본적인 데이터 타입이 STRING인데 NUMBER를 더하고 뺀다던가 (ex '만원' - 3000 )

price가 NUMBER로 정의되어 있는데 다른 데이터 타입을 넣는다던가 (ex price = '만원')

형 변환 시 데이터 형이 변환하는 형과 부적절하면 (ex to_number('1000,000,000,')) -- , (콤마)가 문제

에러가 발생할 수 있다.

 

728x90

댓글