Задача для PLSQL: Обновление партиций

84 views
Skip to first unread message

Zubr80

unread,
Aug 16, 2012, 5:32:00 AM8/16/12
to zubr...@googlegroups.com
На вход:
-таблица
-требуемая структура партиций (структурированная строка).
Процедура должна:
-привести структуру партиций таблицы к требуемой.

Кто готов взяться?


olexandr.radchenko

unread,
Oct 1, 2012, 6:36:05 AM10/1/12
to zubr...@googlegroups.com

Я готов взяться, опишите задачу подробней.

Zubr

unread,
Oct 1, 2012, 7:46:09 AM10/1/12
to zubr...@googlegroups.com

Есть таблица:

create table Tmp1(
 id varchar2
(30),
 kind varchar2
(3),
 dt date
,
 lbl varchar2
(4000)
)partition by range(kind,dt)(
 partition aaOld values less than
('aa',date'2000-01-01'),
 partition aa2000 values less than
('aa',date'2001-01-01'),
 partition aa2001 values less than
('aa',date'2002-01-01'),
 partition aa2002 values less than
('aa',maxValue),
 partition abOld values less than
('ab',date'2000-01-01'),
 partition ab2000 values less than
('ab',maxValue)
);
;


При вызове:
begin
 
Tbl_mrgParts('TMP1','
<parts cols="kind,dt">
 <part name="aaOld"  vals="aa|min"/>
 <part name="aa2000" vals="aa|2000-01-01"/>
 <part name="aa2001" vals="aa|2001-01-01"/>
 <part name="aa2002" vals="aa|2002-01-01"/>
 <part name="aa2003" vals="aa|2003-01-01"/>
 <part name="abOld"  vals="ab|min"/>
 <part name="ab2000" vals="ab|2000-01-01"/>
</parts>
'
);
end;


процедура должна сгененировать и выполнить:

alter table Tmp1 split partition aa2002 at('aa',date'2003-01-01')into(partition aa2002, partition aa2003);

Если что не понятно, спрашивайте...

olexandr.radchenko

unread,
Oct 1, 2012, 8:10:24 AM10/1/12
to zubr...@googlegroups.com
Пока все ясно.
Reply all
Reply to author
Forward
0 new messages