create table agg_summary (period date, lvl_id number);
已创建分区,lvl_id
其中包括 1,2,3 作为每个 id 的单独分区。
如何访问agg_summary
同时拥有 1 和 2?
至少有三种方法可以从特定分区中选择数据。有关语法的详细说明,请参阅手册。
create table agg_summary (period date, lvl_id number)
partition by list (lvl_id)
(
partition p1 values (1),
partition p2 values (2),
partition p3 values (3)
);
--#1: Normal predicate:
select * from agg_summary where lvl_id in (1,2);
--#2: Partition_extended_name:
select * from agg_summary partition (p1)
union all
select * from agg_summary partition (p2);
--#3: Partition_excension_clause:
select * from agg_summary partition for (1)
union all
select * from agg_summary partition for (2);
99.9% 的时间选项#1 应该足够了。Oracle 将自动确定使用哪些分区并将正确修剪。对于修剪无法正常工作的情况,或者根据分区名称或键进行选择更合乎逻辑,选项 #2 或 #3 应该可以工作。