oracle通过查询DBA_SEGMENTS表获取表空间文件信息,包括表空间名称,大小等
select tablespace_name,sum(max_size),sum(bytes) from dba_segments group by tablespace_name;
max_size和bytes的单位是字节。将上面的sql语句放到存储过程中执行,有时候会出现dba_segments“表或视图不存在”错误。这是由于没有把dba_segments表的查询权限赋给当前用户。需要执行下面的语句进行授权。
grant select on dba_segments to user
user为要授权的用户名。如果还需要其他权限,可以用下面语句把所有权限都赋给user
grant all on dba_segments to user;