我如何 select 我的所有用户表并在 sql plus 中列出它的大小?

How do I select all my user tables and list its size along with it in sql plus?

SELECT table_name , (SELECT (sum(bytes)/1024) "SizeinKB" FROM dba_segments) AS KB
FROM user_tables
ORDER BY table_name;

这列出了我的所有用户 table 和数据库占用的总数 space。如何显示每个 table 及其使用的总大小?我在 sql 加上。谢谢。

您需要加入和分组:

SELECT ut.table_name, sum(s.bytes)/1024 as"SizeinKB" 
FROM user_tables ut
  JOIN user_segments s ON ut.table_name = s.segment_name
group by ut.table_name
ORDER BY ut.table_name;

请注意,这没有考虑 CLOB 或 BLOB 列的大小,因为每个列都有一个单独的段。