Oracle 列表范围分区表是否可以使用PCT(分区更改跟踪)?
我已创建列表范围分区表:Oracle 列表范围分区表是否可以使用PCT(分区更改跟踪)?,oracle,oracle11g,partitioning,materialized-views,Oracle,Oracle11g,Partitioning,Materialized Views,我已创建列表范围分区表: CREATE TABLE WHREST_PRT( RCNUM NUMBER NOT NULL, WHNUM NUMBER NOT NULL, WARE VARCHAR2(10 CHAR) NOT NULL, DATEM DATE NOT NULL, QUANTITY NUMBER NOT NULL, DATEOPER DATE NOT NUL
CREATE TABLE WHREST_PRT(
RCNUM NUMBER NOT NULL,
WHNUM NUMBER NOT NULL,
WARE VARCHAR2(10 CHAR) NOT NULL,
DATEM DATE NOT NULL,
QUANTITY NUMBER NOT NULL,
DATEOPER DATE NOT NULL
)
PARTITION BY LIST( RCNUM )
SUBPARTITION BY RANGE( DATEM )(
PARTITION P127 VALUES (127) COMPRESS FOR OLTP (
SUBPARTITION P127_PRE_2003 VALUES LESS THAN (TO_DATE('01.01.2003','DD.MM.YYYY')) COMPRESS FOR OLTP,
SUBPARTITION P127_Q1_2003 VALUES LESS THAN (TO_DATE('01.04.2003','DD.MM.YYYY')) COMPRESS FOR OLTP
),
...
PARTITION P997 VALUES (997) COMPRESS FOR OLTP (
SUBPARTITION P997_PRE_2003 VALUES LESS THAN (TO_DATE('01.01.2003','DD.MM.YYYY')) COMPRESS FOR OLTP,
SUBPARTITION P997_Q1_2003 VALUES LESS THAN (TO_DATE('01.04.2003','DD.MM.YYYY')) COMPRESS FOR OLTP
)
)
然后,我手动向13个部门分区中的每个分区添加了更多的季度子分区(截至2015年1月1日)。现在,子部分的总数为602
然后用数据填充它
现在我尝试创建物化视图:
CREATE MATERIALIZED VIEW MV_WHREST_SUM_QNT (
RCNUM, WARE, DATEM, SUM_QNT, CNT_CNT, CNT
) PARALLEL
BUILD IMMEDIATE
REFRESH FAST ON DEMAND
ENABLE QUERY REWRITE
AS
SELECT RCNUM,
WARE,
DATEM,
SUM( QUANTITY ),
COUNT( QUANTITY ),
COUNT( * )
FROM WHREST_PRT
WHERE WHNUM > 1
GROUP BY RCNUM, WARE, DATEM
但是DBMS_MVIEW.EXPLAIN_MVIEW的结果表明,通过以下消息,PCT是不可能的:
2070 PCT not supported with this type of partitioning
我想知道为什么在我的情况下PCT是不可能的。搜索该消息和“列表范围复合分区”没有任何帮助
Oracle版本是11.2.0.3。这可能是一个bug。My Oracle Support上的文章ID 1281826.1列出了符合分区更改跟踪条件的分区类型。它没有解释为什么某些分区类型是不允许的。尽管它确实包含了对不同类型分区的bug的引用,但这也是不允许的。我会尝试以下几种方法: