У меня есть таблица с множеством перегородок. Когда я даю дату, мне нужно получить имя всего раздела. Например: если я ввожу дату 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;
Это сохранение единственного свидания. Мне нужны все даты, это возможно?
varchar2
. Таким образом, возвращается только одно имя раздела .. Вы продолжаете перезаписывать одну и ту же переменную! У вас должна быть табличная функция для возврата таблицы имен. - person Maheswaran Ravisankar   schedule 16.10.2014