Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Количество записей


Автор: Rommik 17.5.2007, 14:19
Добрый день. Как мне узнать названия и количество записей в таблицах некоторой схемы?. Что то типа 

Код

   select table_name, count(*) from dba_tables where owner = 'TEST' 

Автор: Sqlninja 17.5.2007, 14:40
заходи под нужным юзером.

Код

select table_name, num_rows from user_tables

Автор: TicTak 17.5.2007, 14:41
Код

select TABLE_NAME, NUM_ROWS from all_tables where owner = 'TEST' 

Автор: Rodman 17.5.2007, 14:52
Код

select count(IDtable)  from dba_tables where owner = 'TEST'; 

Автор: Rommik 17.5.2007, 14:56
Но 
Код

   select count(*) from TEST.PROBA


показывает другое число записей, чем в 
Код

   select table_name, num_rows from user_tables

Автор: Rommik 17.5.2007, 15:13
и где взять IDtable?

Автор: TicTak 18.5.2007, 09:49
Цитата(Rommik @ 17.5.2007,  16:56)
Но 
Код

   select count(*) from TEST.PROBA


показывает другое число записей, чем в 
Код

   select table_name, num_rows from user_tables

Нужно запустить анализ таблиц

Автор: batigoal 18.5.2007, 15:43
В первом приближении так:

Код

set serveroutput on

DECLARE

  CURSOR tab IS
    SELECT table_name FROM user_tables;
  curr_table varchar(30);
  row_number NUMBER;

BEGIN

  OPEN tab;
  LOOP
    FETCH tab
      INTO curr_table;
      
      EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || curr_table INTO row_number;
      
      dbms_output.put_line(curr_table || '   ' || row_number);
      
    EXIT WHEN tab%NOTFOUND;
  END LOOP;
  CLOSE tab;

END;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)