查看存档策略 - 我们必须存档特定数据集。
而不是插入/删除例程 - 我正在考虑使用分区交换。
待存档表是按日期划分的区间范围,在国家/地区有一个列表子分区。
我希望对特定国家进行分区交换。
create table
test_table
(tbl_id number,
country varchar2(2),
sales_dt date,
volume number)
partition by range (sales_dt) interval (NUMTOYMINTERVAL(1,'Month'))
subpartition by list (country)
Subpartition template
(subpartition p_ireland values ('IR'),
subpartition p_france values ('FR'),
subpartition p_other values (DEFAULT))
(partition before_2008 values less than (to_date('01-JAN-2008','DD-MON-YYYY')));
加载的数据正确地落入分区和子分区。所有分区名称都是系统生成的。
当我为所有'FR'子分区进行分区交换时 - 我无法确定逻辑。
使用
Alter table test_table
exchange subpartition system_generated_name
with table TEST_TABLE_ARCH;
我可以换掉一个特定的“已知”子分区。
我知道您可以在Oracle 11g中使用'for'逻辑,但无法使语法生效。
有什么想法吗?
答案 0 :(得分:0)
我们过去对此进行了测试,并认为我们必须提出一个正确的程序。目标是做两个分区交换:一个在源表和空交换表之间,另一个在你现在填充的交换表和归档表之间。
Prereqs:创建一个空交换表,与源表进行分区交换。此外,还要创建一个将进行分区的归档表。
高级流程:
我们从未对此进行编码,因此这个过程可能需要调整,但我们认为如果我们采取这样的策略,这就是我们必须要做的事情。