(recommended) Method one:
Select Dbf.tablespace_name,
Dbf.totalspace "Total (M)",
Dbf.totalblocks as total block number,
Dfs.freespace "Total surplus (M)",
Dfs.freeblocks "Number of remaining blocks",
(dfs.freespace/dbf.totalspace) * 100 "free ratio"
From (select T.tablespace_name,
SUM (t.bytes)/1024/1024 Totalspace,
SUM (t.blocks) totalblocks
From Dba_data_files t
Group by T.tablespace_name) DBF,
(Select Tt.tablespace_name,
SUM (tt.bytes)/1024/1024 FreeSpace,
SUM (tt.blocks) freeblocks
From Dba_free_space TT
GROUP by Tt.tablespace_name) DFS
where trim (dbf.tablespace_name) = Trim (dfs.tablespace_name)
Method Two:
Select Total.name "tablespace name",
Free_space, (total_space-free_space) Used_space, Total_space
From
(select Tablespace_name, sum (bytes/1024/1024) free_space
From Sys.dba_free_space
GROUP BY Tablespace_name
) Free,
(select B.name, sum (bytes/1024/1024) total_space
From Sys.v_$datafile A, sys.v_$tablespace B
where a.ts# = b.ts#
GROUP BY B.name
) Total
WHERE Free.tablespace_name = Total.name
Method Three:
Select * from Dba_tablespaces