comment obtenir des noms de partition dans oracle alors que j'ai de la saisie d'une date

J'ai une table avec plusieurs partitions de gamme. J'ai besoin d'obtenir le nom de tous les partition quand je donne une date.
Pour exemple: si j'date d'entrée 20/09/2014, elle devrait liste de toutes les partitions avant cette date donnée.

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;

C'est returing une date unique. J'ai besoin de toutes les dates, est-il possible?

Vous revenez varchar2 seulement. Si seulement un nom de partition est retourné.. Vous gardez l'écrasement de la même variable! Vous avez besoin d'avoir une table de la fonction de retour d'une table de noms.
comment peut-il être créé. pouvez-vous m'aider?

OriginalL'auteur Charles Peter | 2014-10-16