幼教 | 试题 | 电脑 | 作文 | 常识 | 加入收藏 | 网站地图

您当前位置:多思学习网文章资讯考试频道计算机考试ORACLE/CIW认证ORACLE当前用户下所有表中的记录数

ORACLE当前用户下所有表中的记录数

01-23 15:53:02ORACLE/CIW认证
浏览次数:488次 
标签:ciw认证,ciw认证考试,oracle认证,http://www.duosi8.com ORACLE当前用户下所有表中的记录数,

    SQL> show user

  USER is "AAA"

  SQL> set serverout on

  写一个脚本,查询当前用户下所有的表并统计记录数。

  declare

  v_table varchar2(60);

  v_num number;

  v_sum number;

  begin

  v_sum:=0;

  for idx in (select * from user_tables order by table_name) loop

  v_table:=idx.table_name;

  execute immediate ’select count(*) from ’ || v_table into v_num ;

  v_sum:=v_sum+v_num;

  end loop ;

  dbms_output.put_line(v_sum);

  end;

  /

  48108

  结果是48108。

  oracle有一个视图记录了当前用户下的表的所有信息,包括记录数(num_rows),使用该表也可以得到记录总数:

  SQL> show user

  USER is "AAA"

  SQL> select sum(num_rows) from user_all_tables;

  SUM(NUM_ROWS)

  46428

  结果却不一样,因为没有收集统计信息,先收集一下统计信息:

  declare

  v_table varchar2(60);

  begin

  for idx in (select table_name from user_tables order by table_name) loop

  v_table:=idx.table_name;

  execute immediate ’analyze table ’ || v_table ||’ compute statistics’ ;

  end loop ;

  end ;

  /

  现在再执行查徇:

  SQL> select sum(num_rows) from user_all_tables;

  SUM(NUM_ROWS)

  48108

  结果正确。

,ORACLE当前用户下所有表中的记录数

联系我们 | 网站地图 | 幼教大全 | 试题下载 | 电脑学习 | 加入收藏


幼儿园教案_ 教案模板_ 课件模板_ 教学反思_ 教学计划


多思学习网 1 2 3 4 5 6