fast重新整理的限制

rainbowbridg發表於2008-04-11
今天重新整理物化檢視出現了問題:
CREATE MATERIALIZED VIEW LOG ON users;


CREATE MATERIALIZED VIEW users REFRESH FAST START WITH SYSDATE NEXT trunc(SYSDATE + 1) WITH PRIMARY KEY AS SELECT * FROM ;

SQL> exec dbms_mview.refresh('USERS','FAST');

begin dbms_mview.refresh('USERS','FAST'); end;

ORA-12008: error in materialized view refresh path
ORA-01008: not all variables bound
ORA-02063: preceding line from CNCYY
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2254
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2460
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2429
ORA-06512: at line 1

但是
SQL> EXEC DBMS_MVIEW.REFRESH('USERS', 'COMPLETE');

PL/SQL procedure successfully completed

確沒問題呢?
原來基表users裡面有個欄位的預設值是sysdate的,所以不能fast重新整理!!

fast重新整理的限制

所有型別的快速重新整理物化檢視都必須滿足的條件:

1.物化檢視不能包含對不重複表示式的引用,如SYSDATE和ROWNUM;

2.物化檢視不能包含對LONG和LONG RAW資料型別的引用。

只包含連線的物化檢視:

1.必須滿足所有快速重新整理物化檢視都滿足的條件;

2.不能包括GROUP BY語句或聚集操作;

3.如果在WHERE語句中包含外連線,那麼唯一約束必須存在於連線中內表的連線列上;

4.如果不包含外連線,那麼WHERE語句沒有限制,如果包含外連線,那麼WHERE語句中只能使用AND連線,並且只能使用“=”操作。

5.FROM語句列表中所有表的ROWID必須出現在SELECT語句的列表中。

6.FROM語句列表中的所有表必須建立基於ROWID型別的物化檢視日誌。

[@more@]

http://www.blogjava.net/allan-oy/articles/57769.html

這篇文章介紹的比較詳細!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1002336/,如需轉載,請註明出處,否則將追究法律責任。

相關文章