Re: Table Partition Count
From: matthew <matthiasrogel_at_googlemail.com>
Date: Fri, 27 Nov 2009 03:59:35 -0800 (PST)
Message-ID: <a14b43ff-35a8-474b-958a-1f052410117f_at_x31g2000yqx.googlegroups.com>
create function count_(vtabname in varchar2) return sys.odcivarchar2list pipelined
is
end loop;
end loop;
Date: Fri, 27 Nov 2009 03:59:35 -0800 (PST)
Message-ID: <a14b43ff-35a8-474b-958a-1f052410117f_at_x31g2000yqx.googlegroups.com>
create function count_(vtabname in varchar2) return sys.odcivarchar2list pipelined
is
s long;
cu sys_refcursor;
r varchar2(256);
begin
for su in
(
select table_name, partition_name, subpartition_name from user_tab_subpartitions where table_name = vtabname ) loop s := 'select ''Table "' || su.table_name || '", Partition "' ||su.partition_name || '", Subpartition "' || su.subpartition_name || '": count '' || count(*) from "' ||
dbms_assert.sql_object_name(vtabname) || '" subpartition("' || su.subpartition_name || '")';
open cu for s; loop fetch cu into r; exit when cu%notfound; pipe row(r); end loop; close cu;
end loop;
for p in
(
select table_name, partition_name from user_tab_partitions where table_name = vtabname ) loop s := 'select ''Table "' || p.table_name || '", Partition "' || p.partition_name || '": count '' || count(*) from "' || dbms_assert.sql_object_name(vtabname) || '" partition("' || p.partition_name || '")'; open cu for s; loop fetch cu into r; exit when cu%notfound; pipe row(r); end loop; close cu;
end loop;
return;
end;
/
select * from table(count_('T1'))
/
Received on Fri Nov 27 2009 - 05:59:35 CST