可以从表user_tables中查询.
select
sum(num_rows)
from
user_tables
;
就是显示用户所有表的行数其中num_rows是每个表的行数,用sum加总一下,就是当前用户所有表的总行数.
但因为user_tables中的数据不是实时统计,会有时间差,所以以上Sql统计得到的结果与实际会存在一定误差.
方法和详细的操作步骤如下:
①.、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤.
表名不能直接带进参数,比如用动态sql来拼装.而动态sql结果不能直接读出,用临时表存储.
建一个临时表
create table
里面写一个动态sql
v_sql = 'insert into tmp_tabcount select count(1) tabcount from '||v_tabname||' ;';
execute immediate v_sql;
select tabcount into v_count from tmp_tabcount where tabname = v_tabname;
return tabcount;
(10g直接执行第二步就可以了)
统计一个用户下所有表的行数:
①exec
dbms_stats.gather_schema_stats(owner='用户名');
user_tables;
统计全库所有表的行数:
dba_tables;
生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响.