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)*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%
ORA-01476: divisor is equal to zero
原文:https://www.cnblogs.com/pjarmy/p/12846969.html