google来的 =============== 执行下面的角本,生成c:\mytext.sql的文件,运行c:\mytext.sql文件中的内容,可以得到当前用户下的所有表及表中的记录数 Connect UserID/PSW@NETServerName set feedback off set heading off spool c:\mytext.sql select decode(rownum,1,'','union')||' select'||''''||table_name||''''||',count(*)from '||table_name from user_tables; spool off
先从all_table里找出所有表名
然后做循环用动态sql去查询所有表的纪录数
===============
执行下面的角本,生成c:\mytext.sql的文件,运行c:\mytext.sql文件中的内容,可以得到当前用户下的所有表及表中的记录数
Connect UserID/PSW@NETServerName
set feedback off
set heading off
spool c:\mytext.sql
select decode(rownum,1,'','union')||' select'||''''||table_name||''''||',count(*)from '||table_name from user_tables;
spool off
呵呵,没仔细看user_tables里的内容,原来里面有num_rows,太简单了
换成all_tables就可以看全部表了
这个NUM_ROWS好像有些表是不记录数据的吧.
SELECT * FROM USER_TABLES WHERE NUM_ROWS > 0; 如果不先对表进行分析,得不到预期的结果的。
这个字段只有对表执行了分析以后才会出现
analyze table table_name compute statistics;
推荐使用:dbms_stats.gather_*_stats
dbms_stats这个包是ORACLE自带的