Tuesday, March 31, 2009

/*Script to count the number of rows in tables*/

/*Script to count the number of rows in tables*/

 

set serveroutput on

 

declare

numrows integer;

cursor c1 is select table_name from user_tables order by table_name;

function rowcount(tablename in user_tables.table_name%type)

return integer is

cursornum    integer;

numrows        integer;

ignore        integer;

begin

cursornum := dbms_sql.open_cursor;

dbms_sql.parse(cursornum,

'select count(*) from ' || tablename,

dbms_sql.v7);

dbms_sql.define_column(cursornum, 1, numrows);

ignore := dbms_sql.execute(cursornum);

ignore := dbms_sql.fetch_rows(cursornum);

dbms_sql.column_value(cursornum, 1, numrows);

dbms_sql.close_cursor(cursornum);

return numrows;

end;

begin

dbms_output.enable(100000);

dbms_output.put_line('Table                           Rows      ');

dbms_output.put_line('——————————  ———-');

for c1rec in c1 loop

numrows := rowcount(c1rec.table_name);

dbms_output.put_line(rpad(c1rec.table_name, 32) || numrows);

end loop;

end;

/