【发布时间】:2015-11-16 16:09:07
【问题描述】:
我有一个带有字段 MY_DATE 的分区表,该字段始终是从 1999 年到 2017 年每个月的第一天。
例如,它包含 01/01/2015、01/02/2015、..... 01/12/2015 的记录,例如 01/01/1999、01/02/1999 等.
字段MY_DATE是分区字段。
我想以最有效的方式将两个相邻分区(M 月和 M-1 月)的 field2 和 field3 的不同值复制到另一个表中,以便找到不同的一对(field2, field3) 的日期。
Exchange Partition 仅在目标表未分区时有效,但在复制第二个相邻分区的数据时,我收到错误,
“ORA-14099:表中的所有行都不符合指定分区的条件”。
我用的是语句:
ALTER TABLE MY_USER.MY_PARTITIONED_TABLE EXCHANGE PARTITION PART_P201502 WITH TABLE MY_USER.MY_TABLE
当然 MY_PARTITIONED_TABLE 和 MY_TABLE 具有相同的字段,但第一个是如上所述的分区。
请假设 MY_PARTITIONED_TABLE 是一个包含大约 5 亿条记录的巨大表。
目标是找到两个相邻分区的不同的 (field2, field3) 值对。
我的做法是:复制分区M的数据,复制分区M-1的数据,然后SELECT DISTINCT FIELD2, FIELD3 from DESTINATION_TABLE。
非常感谢您考虑我的要求。
【问题讨论】:
-
你是如何定义你的分区的?按范围还是按列表?
标签: sql oracle database-partitioning