Refresh multiple MV's in a single transaction

Hello List.

Does anybody know of a way to refresh multiple MV's in a single transaction?
I have a bunch of MV's that users can join as they please in Business
Objects (please, hold the jokes) and it's a problem if they join a MV that
has been recently refreshed with one that hasn't been refreshed yet.

At first I thought that was what dbms_refresh.refresh(refresh_group) was
doing, but it's not. It ensures the starting point is consistent for all
MV's in the refresh group, but does nothing for end user read consistency.
Then I tested dbms_mview.refresh(MV) but that does an implicit commit so I
can't serialize the process.

Is there a way of doing what I want to do without writing the code myself?

DB is 10.2.0.2.

Thanks,
Finn

Other related posts: