发布网友 发布时间:2022-04-08 11:24
共1个回答
热心网友 时间:2022-04-08 12:53
可用两种方法,一种是在oracle的系统表中统计,另一种需要写存储过程统计,方法分别如下。
1、系统表中统计:
1
SELECT sum(num_rows) FROM user_tables;
结果:
2、存储过程统计,代码如下:
declarev_tName varchar(50);v_sqlanalyze varchar(500);v_num number;v_sql varchar(500);cursor c1 isselect table_name from user_tables;beginopen c1;loopfetch c1 into v_tName;if c1%found then v_sqlanalyze :='analyze table '||v_tName||' estimate statistics';execute immediate v_sqlanalyze;v_sql := 'select NUM_ROWS from user_tables where table_name =upper('''||v_tName||''')'; execute immediate v_sql into v_num;dbms_output.put_line('表名: '||v_tName||' 行数: '||v_num);elseexit;end if;end loop;end;
统计结果: