Если вам нужно явно указать имена разделов в вашем запросе - что не является типичным случаем использования (поскольку вы часто используете предикат WHERE для отсечение раздела ) - но может иметь место и для hash partitioning
, вы можете использовать UNION ALL
для доступа к большему количеству разделов.
select * from TAB partition (Part1)
union all
select * from TAB partition (Part2);
План выполнения показывает (см. столбцы Pstart и Pstop), что доступны только разделы 1 и 2.
----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 86 | 4 (0)| 00:00:01 | | |
| 1 | UNION-ALL | | | | | | | |
| 2 | PARTITION HASH SINGLE | | 1 | 43 | 2 (0)| 00:00:01 | 1 | 1 |
| 3 | TABLE ACCESS STORAGE FULL| TAB | 1 | 43 | 2 (0)| 00:00:01 | 1 | 1 |
| 4 | PARTITION HASH SINGLE | | 1 | 43 | 2 (0)| 00:00:01 | 2 | 2 |
| 5 | TABLE ACCESS STORAGE FULL| TAB | 1 | 43 | 2 (0)| 00:00:01 | 2 | 2 |
----------------------------------------------------------------------------------------------------