2013-03-13 5 views
5

Ich habe eine materialisierte Ansicht, die ich gerne mit commit (von on demand) ändern möchte.Ändern Sie die materialisierte Ansicht in "on commit"

Allerdings bekomme ich ständig

ora-32337 cannot alter materialized view with pending changes refresh on commit 

auch direkt nach einer Aktualisierung (und zu wissen, dass keine Änderung vorgenommen wurde).

Was könnte die Ursache dafür sein? Das MV verwendet Outer Joins, könnte das ein Problem sein? (MV-Protokoll ist für alle Tabellen verfügbar)

+3

Können Sie einfach die materialisierte Ansicht löschen und neu erstellen, wie beim Commit aktualisieren? – eaolson

Antwort

1

Wie @eoolson sagte, sollten Sie die materialisierte Ansicht einfach löschen und sie als Refresh beim Commit neu erstellen. Dies ist der einzige Weg.

+0

Seien Sie vorsichtig, wenn Sie nur die materialisierte Ansicht löschen. Denken Sie daran, nach Einschränkungen für die materialisierte Ansicht/Tabelle zu suchen, da Sie sonst Dinge ohne Wissen brechen könnten. Die sicherere Wahl besteht darin, eine manuelle Aktualisierung durchzuführen und dann bei der Festschreibung zu aktualisieren. 'DBMS_MVIEW.REFRESH ('Eigentümer.MViewName', 'C'); ALTER MATERIALIZED VIEW Eigentümer.MViewName REFRESH ON COMMIT; ' – bdeem