2011-12-7
疑惑1:本来跑的好好的job竟然突然出现问题了,该job总是不停的循环执行,而且其中的某个过程总是没执行完整。这其中我唯一做过的修改就是增加了物化视图。
难不成是物化视图导致了job的异常?(可见itpub上当时的提问http://www.itpub.net/thread-1517207-1-1.html)
原因:在job中在对表进行了更新操作后,为了减少碎片等问题我执行了收缩操作(ALTER TABLE table_name SHRINK SPACE CASCADE),后来我对其中的几个表创建了物化视图是快速刷新方式的,必须包含该表的rowid,而如果某个表被用于创建的物化视图 包含了该表的rowid,那么就会导致该表无法执行表收缩操作
否则会提示:
ORA-10663: Object has rowid based materialized views
疑惑2:见itpub上,不在多写了。
http://www.itpub.net/thread-1518019-1-1.html
原因:如果该表含有空间索引的话,就无法基于该表创建可快速刷新的物化视图。