6

最近、Oracle でマテリアライズド ビューを更新する dbms_mview.refresh(...) を呼び出すと、暗黙的なコミットがあることに気付きました。

「そうするから」以外のアイデアはありますか?なぜこのアクションには暗黙的なコミットがあるのですか?

4

3 に答える 3

6

Tom Kyte 氏によると、設計時に更新を DDL 操作と見なす決定が行われたためです。すべての DDL 操作は暗黙的にコミットされるため、これもコミットされます。残念ながら、なぜ彼らが DDL にすることを選択したのかという質問に対して、彼は答えていません。

于 2009-05-06T13:49:26.800 に答える
0

回避策は、自律型トランザクションで dbms_mview.refresh への呼び出しを行うことです (pragmaautonomous_transaction を使用して PL/SQL プロシージャを作成します)。

于 2009-05-07T17:41:27.390 に答える