| SQL> create or replace procedure p_partition_total (p_tablename in varchar2) as
2 v_part_name varchar2(30);
3 v_total number;
4 begin
5 dbms_output.put_line(rpad('Partition_name', 30) || lpad('Total', 10));
6 for c_part_name in (select partition_name from user_tab_partitions where table_name = UPPER(p_tablename)) loop
7 execute immediate 'select ''' || c_part_name.partition_name || ''', count(*) from ' || p_tablename || ' partition (' || c_part_name.partition_name || ')' into v_part_name, v_total;
8 dbms_output.put_line(rpad(v_part_name, 30) || lpad(v_total, 10));
9 end loop;
10 end;
11 /
|