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%