软件环境: 
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT
SQL语句: 
SQL> col tablespace format a20
SQL> select 
     b.file_id  文件ID号,
     b.tablespace_name  表空间名,
     b.bytes  字节数,
     (b.bytes-sum(nvl(a.bytes,0)))  已使用,
     sum(nvl(a.bytes,0))  剩余空间,
     sum(nvl(a.bytes,0))/(b.bytes)*100  剩余百分比 
     from dba_free_space a,dba_data_files b 
     where a.file_id=b.file_id 
     group by b.tablespace_name,b.file_id,b.bytes 
     order by b.file_id
     /
 文件ID号 表空间名                          字节数    已使用  剩余空间 剩余百分比
--------- ------------------------------ --------- --------- --------- ----------
        1 SYSTEM                          20971520   9971712  10999808  52.451172
        2 USER_DATA                        3145728    432128   2713600  86.263021
        3 ROLLBACK_DATA                    5242880   1640448   3602432  68.710938
        4 TEMPORARY_DATA                   2097152      2048   2095104  99.902344

解决方案 »

  1.   

    DBA_DATA_FILES,DBA_TABLESPACES查当前表空间的大小:
    select tablespace_name,sum(bytes)/1024/1024 total_space_MB
      from dba_data_files
      group by tablespace_name
      

  2.   

    可以直接执行
    select 
         b.file_id  文件ID号,
         b.tablespace_name  表空间名,
         b.bytes  字节数,
         (b.bytes-sum(nvl(a.bytes,0)))  已使用,
         sum(nvl(a.bytes,0))  剩余空间,
         sum(nvl(a.bytes,0))/(b.bytes)*100  剩余百分比 
         from dba_free_space a,dba_data_files b 
         where a.file_id=b.file_id 
         group by b.tablespace_name,b.file_id,b.bytes 
         order by b.file_id;
      

  3.   

    SELECT upper(f.tablespace_name) 表空间名,
           d.Tot_grootte_Mb "表空间大小(M)",
           d.Tot_grootte_Mb - f.total_bytes "已使用空间(M)",
           round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) "使用比",
           f.total_bytes "空闲空间(M)",
           f.max_bytes "最大块(M)"
     FROM      
        (SELECT tablespace_name,
                round(SUM(bytes)/(1024*1024),2) total_bytes,
                round(MAX(bytes)/(1024*1024),2) max_bytes
          FROM sys.dba_free_space
         GROUP BY tablespace_name) f,
        (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
          FROM   sys.dba_data_files dd
          GROUP BY dd.tablespace_name) d
    WHERE d.tablespace_name = f.tablespace_name    
    ORDER BY 4 DESC