我有一个包含许多分区范围的表.我提供日期时需要获取所有分区的名称.例如:如果我输入日期20/09/2014,它应列出该给定日期之前的所有分区.
create or replace function get_part_name(p_date in date)
return varchar2 is
d date;
retp varchar2(30);
mind date:=to_date('4444-01-01','yyyy-mm-dd');
str varchar2(32000);
cursor c is
select high_value, partition_name p
from user_tab_partitions
where table_name='TEST';
begin
for r in c loop
str := r.high_value;
execute immediate 'select '||str||' from dual' into d;
if p_date<d and d<mind then
retp:=r.p;
mind:=d;
end if;
end loop;
return retp;
end;
Run Code Online (Sandbox Code Playgroud)
这是一个单一的日期.我需要所有日期,是否可能?