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%

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM