Get row_count of partitions of a table - Oracle Database Script. SET serverout ON SIZE 1000000 SET verify OFF DECLARE sql_stmt varchar2(1024); ROW_COUNT number; CURSOR get_tab IS SELECT TABLE_NAME, partition_name FROM dba_tab_partitions WHERE table_owner=upper('&&TABLE_OWNER') AND TABLE_NAME='&&TABLE_NAME'; BEGIN dbms_output.put_line('Checking Record Counts for table_name'); dbms_output.put_line('Log file to numrows_part_&&TABLE_OWNER.lst ....'); dbms_output.put_line('....'); FOR get_tab_rec IN get_tab LOOP BEGIN sql_stmt := 'select count(*) from &&TABLE_OWNER..'||get_tab_rec.table_name ||' partition ( '||get_tab_rec.partition_name||' )'; EXECUTE IMMEDIATE sql_stmt INTO ROW_COUNT; dbms_output.put_line('Table '||rpad(get_tab_rec.table_name ||'('||get_tab_rec.partition_name||')', 50) ||' '||TO_CHAR(ROW_COUNT)||' rows.'); EXCEPTION WHEN others THEN dbms_output.put_line ('Error counting rows for table '||get_tab_rec.table_name); END; END LOOP; END; / SET verify ON
SET serverout ON SIZE 1000000 SET verify OFF DECLARE sql_stmt varchar2(1024); ROW_COUNT number; CURSOR get_tab IS SELECT TABLE_NAME, partition_name FROM dba_tab_partitions WHERE table_owner=upper('&&TABLE_OWNER') AND TABLE_NAME='&&TABLE_NAME'; BEGIN dbms_output.put_line('Checking Record Counts for table_name'); dbms_output.put_line('Log file to numrows_part_&&TABLE_OWNER.lst ....'); dbms_output.put_line('....'); FOR get_tab_rec IN get_tab LOOP BEGIN sql_stmt := 'select count(*) from &&TABLE_OWNER..'||get_tab_rec.table_name ||' partition ( '||get_tab_rec.partition_name||' )'; EXECUTE IMMEDIATE sql_stmt INTO ROW_COUNT; dbms_output.put_line('Table '||rpad(get_tab_rec.table_name ||'('||get_tab_rec.partition_name||')', 50) ||' '||TO_CHAR(ROW_COUNT)||' rows.'); EXCEPTION WHEN others THEN dbms_output.put_line ('Error counting rows for table '||get_tab_rec.table_name); END; END LOOP; END; / SET verify ON