2013-03-13 10 views
5

Hızlı yenileme kullanarak taahhütte (talepten) değişiklik yapmak istediğim somutlaşmış bir görünüm var. Yansıtılmış görünümü değiştirmeye karar verin

Ancak ben sürekli hatta doğrudan yenilemesi (ve hiçbir değişiklik yapılmadı bilerek) sonra
ora-32337 cannot alter materialized view with pending changes refresh on commit 

olsun.

Bunun nedeni ne olabilir? MV dış birleşme kullanır, bu bir sorun olabilir mi? (MV günlüğü tüm tablolarda kullanılabilir)

+3

Sadece gerçekleşen görünümü bırakabilir ve üzerinde yenileme olarak yeniden oluşturabilirsiniz? – eaolson

cevap

1

@eaolson, materyalize edilmiş görünümü bırakmanız ve işlemeyi yenilemek olarak yeniden oluşturmanız gerektiğini söyledi. Bu tek yolu ..

+0

Sadece Materyal Görünümü'nü düşürme konusunda dikkatli olun. Materyalize edilmiş görünüm/tablodaki kısıtlamaları kontrol etmeyi unutmayın, aksi halde bilmeden şeyleri kırabilirsin. Daha güvenli bir seçim, manuel yenileme yapmak ve ardından işlemeyi yenilemek için değiştirmektir. 'DBMS_MVIEW.REFRESH ('Owner.MViewName', 'C'); ALTER MATERIALIZED VIEW Owner.MViewName COMMIT ON REFRESH; – bdeem