Why does DBMS_MVIEW.REFRESH have an implicit commit?

Nick Pierpoint picture Nick Pierpoint · May 6, 2009 · Viewed 7.7k times · Source

I noticed recently that calling dbms_mview.refresh(...), which refreshes materialized views in Oracle, has an implicit commit.

Any ideas - other than "because it does" - why this action has an implicit commit?

Answer

Leigh Riffel picture Leigh Riffel · May 6, 2009

According to Tom Kyte it is because a decision was made at design time to consider refreshing to be a DDL operation. Since all DDL operations implicitly commit, so does this one. Unfortunatly he doesn't answer the resulting question of why they choose to make it DDL.