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

원인은 Zero값으로 임의의 수를 나누었을때 발생한다. 

아래와 같이 분모가 0이면 이런

SELECT 100 / 0 FROM DUAL

해결 방법은 이러하다.
  

■NULLIF 함수 사용

SELECT NVL(A/NULLIF(B,0),0)
  FROM (SELECT 100 A, 0 B FROM DUAL)

■NULLIF 함수란

NULLIF( expr1, expr2 )

expr1과 expr2의 값이 같을 때 NULL을 반환하는 함수이다.

 

■DECODE 사용

SELECT NVL(A/DECODE(B,0,NULL, B),0)
  FROM (SELECT 100 A, 0 B FROM DUAL)

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기