DB/Oracle

[Oralce] ORA-01476: divisor is equal to zero - 제수가 0입니다.

콩다영 2023. 3. 29.
728x90


쿼리를 짜다가 ORA-01476: divisor is equal to zero 에러가 발생했다.

에러가 발생한 이유는 제수가 0이기 때문이다.
즉, 분모가 0이여서 발생하는 에러이다. 분모에는 0이 올 수 없다.


운영 DB로 넘어가기 전 개발 DB에서 클렌징을 하고 다시 TEST를 진행하면서
분모가 0인 경우가 발생하여 위 에러를 마주했다..
데이터가 많이 항상 분모는 0이 아닐 거라 생각하고 쿼리를 짜서 그랬던 것 같다.



본론으로 돌아가서,
ORA-01476:divisor is equal to zero 에러 해결법
분모 값이 0이 온다면 CASE ~ WHEN ~ THEN문 및 NVL(), COALESCE() 이용하여 해결할 수 있다.




* CASE ~ WHEN ~ THEN문 및 NVL() 사용

SELECT CASE WHEN NVL(분모,0) > 0 THEN 연산식
		ELSE 0 END AS 결과
  FROM dual;

   : 분모가 0이 아닐때만 연산식을 수행하고 아니면 0을 출력하는 쿼리.


* COALESCE()
  : 사용 방법은 다음 포스팅 참고.

2023.04.01 - [Database/SQL] - [SQL] COALESCE() 함수 NULL 변환

 


통계적이거나 수치를 계산하는 쿼리를 작성할 때는
위 방법을 사용하여 분모가 0인 경우도 유의하여 짜야겠다 -!! :D


728x90
반응형

댓글