Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como incluir mais de uma partição em uma única instrução select no oracle


Há pelo menos três maneiras de selecionar dados de partições específicas. Consulte o manual para uma descrição completa da sintaxe.
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% das vezes a opção #1 deve ser suficiente. O Oracle determinará automaticamente quais partições são usadas e as removerá corretamente. Para casos em que a poda não funciona corretamente, ou é mais lógico selecionar com base no nome ou chave da partição, as opções #2 ou #3 devem funcionar.