我有一个有几百个分区的表,我一般对最新的35个感兴趣.
因此,我试图创建可以动态访问这些视图的视图.即始终使用最新的情况.
select PARTITION_NAME,PARTITION_POSITION,NUM_ROWS,AVG_ROW_LEN
from all_tab_partitions
where
table_name = 'MY_TABLE'
AND PARTITION_NAME <> 'P_LAST'
AND PARTITION_POSITION < (SELECT MAX(PARTITION_POSITION)
FROM all_tab_partitions) - 35
order by 2 DESC
;
似乎返回我感兴趣的分区名称,但是,我没有设法使用它的结果来选择分区.例如.:
CREATE OR REPLACE VIEW MY_VIIEW AS
WITH t AS ( [Above query] )
SELECT * FROM
MY_TABLE PARTITION (SELECT /*+ FIRST_ROWS(1) */ PARTITION_NAME
from t);
(不是实际视图,只是一个例子)
那我该怎么做?如何创建一个始终是最新分区(execpt为“MAX”)的视图?
我正在使用Oracle 10g
谢谢