Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Count(*) each table from user_tables
I wrote this a few years back for 7.* and it still works OK. I think I'd probably be using a bulk collect and execute immediate if I was doing it today but "If it ain't broke....."
Cheers,
Ian
create or replace procedure cnt_rows(tabowner varchar2 default user,
tabname varchar2 default '%') is cnt_tabs integer; tab_cnt integer; num_rows integer; num_tabs integer; cursor get_tabs is select owner, table_name from dba_tables where owner like upper(tabowner) and table_name like upper(tabname) order by owner,table_name;
begin
dbms_output.enable(1000000); dbms_output.put_line(' '); dbms_output.put_line(' '); dbms_output.put_line('Count of rows in tables owned by '||tabowner); dbms_output.put_line(' '); if instr(tabowner,'%') > 0 then dbms_output.put(rpad('Owner',20)||' ');end if;
dbms_output.put(rpad('-',20,'-')||' ');
end if;
dbms_output.put_line(rpad('-',30,'-')||' '||'--------------');
num_tabs := 0;
cnt_tabs := dbms_sql.open_cursor;
for tabrec in get_tabs loop
dbms_sql.parse(cnt_tabs,'select count(*) from '||tabrec.owner
||'."'||tabrec.table_name||'"',dbms_sql.native);
dbms_sql.define_column(cnt_tabs,1,num_rows); tab_cnt := dbms_sql.execute_and_fetch(cnt_tabs); num_tabs := num_tabs + tab_cnt ; dbms_sql.column_value(cnt_tabs,1,num_rows); if instr(tabowner,'%') > 0 then dbms_output.put(rpad(tabrec.owner,20)||' '); end if; dbms_output.put_line(rpad(tabrec.table_name,30)||''||lpad(num_rows,14));
dbms_sql.close_cursor(cnt_tabs); dbms_output.put_line(' '); dbms_output.put_line('Number of tables selected: '||num_tabs);end;
For the latest data on the economy and society consult National Statistics at http://www.statistics.gov.uk
-- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------Received on Fri Jul 02 2004 - 07:41:33 CDT
![]() |
![]() |