ORA-01476: divisor is equal to zero

SQL> select name, total_mb/1024 total_gb, free_mb/1024 free_gb, (total_mb-free_mb)/1024 used_gb, trunc((total_mb-free_mb)/total_mb*100,2)||'%' used_per from v$asm_diskgroup;
ERROR:
ORA-01476: divisor is equal to zero

除数为0

 

在查询存储空间时,有的存储空间为0导致。

NAME              TOTAL_MB         FREE_MB
-----------------    --------------------    -------------
DATA               409600                 252314
OCRVOTE      10240                   9844
FRA                 0                           0

 

--解决方法:

用 decode 将除数 0 转化为其他

select name, total_mb/1024 total_gb, free_mb/1024 free_gb, (total_mb-free_mb)/1024 used_gb, trunc((total_mb-free_mb)/decode(total_mb,0,1,total_mb)*100,2)||'%' used_per from v$asm_diskgroup;

 

--结果可以正常显示:

NAME TOTAL_GB FREE_GB USED_GB USED_PER
------------------------------ ---------- ---------- ---------- -----------------------------------------
DATA 400 246.400391 153.599609 %
OCRVOTE 10 9.61328125 .38671875 %
FRA 0 0 0 0%

 

posted on 2020-05-08 00:52  爱love9  阅读(1818)  评论(0)    收藏  举报