SELECT F.TABLESPACE_NAME, (T.TOTAL_SPACE - F.FREE_SPACE) "USED (MB)", F.FREE_SPACE "FREE (MB)", T.TOTAL_SPACE "TOTAL (MB)", (ROUND((F.FREE_SPACE / T.TOTAL_SPACE) 100)) || ‘% ‘ PER_FREE FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BLOCKS (SELECT VALUE / 1024 FROM V$PARAMETER WHERE NAME = ‘db_block_size‘) / 1024)) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) T WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME;