This PL/SQL code identifies a list of tables that exist in a schema. For each table, it issues a count(*) dynamically.
set serveroutput on;
spool get_all_tables
declare
dyn_sql varchar(300);
count_x number (10);
temp_tab_name char(40);
begin
for t in(select owner, substr(table_name,01,40) as table_name from dba_tables where owner = '' order by table_name)
loop
temp_tab_name := t.table_name;
dyn_sql := 'select count(*) from ' || t.owner || '.' || t.table_name;
execute immediate dyn_sql into count_x;
dbms_output.put_line(t.owner || ' ' || temp_tab_name || ' = ' || count_x || ' rows');
end loop;
end;
/
spool off