= 20 then ' ' else '*' end) alrt
FROM sys.dba_tablespaces d,(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) f,MAX(bytes) large
FROM dba_free_space
GROUP BY tablespace_name) l
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = f.tablespace_name(+)
AND d.tablespace_name = l.tablespace_name(+)
AND NOT (d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY')
UNION ALL
select
d.tablespace_name,'UNIFORM','U','SYSTEM','A',0) - NVL (t.bytes / 1024 / 1024,0)) free,NVL (t.bytes / 1024 / 1024,0) used,lpad(round(nvl(((a.bytes-t.bytes)/NVL(a.bytes,0))*100,100),(case when nvl(round(((a.bytes-t.bytes)/NVL(a.bytes,100) >= 20 then ' ' else '*' end) alrt
FROM sys.dba_tablespaces d,SUM(bytes) bytes
FROM dba_temp_files
GROUP BY tablespace_name order by tablespace_name) a,SUM(bytes_used ) bytes
FROM v\$temp_extent_pool
GROUP BY tablespace_name) t,MAX(bytes_cached) large
FROM v\$temp_extent_pool
GROUP BY tablespace_name order by tablespace_name) l
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.tablespace_name = l.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.contents LIKE 'TEMPORARY'
ORDER by 1
/
prompt
exit
EOF