I cut from one refresh package, HTH create or replace procedure my_mv_refresh is l_code number; l_errm varchar2(4000); l_mv_name varchar2(100) := 't_mv'; begin --proceed complete refresh dbms_mview.refresh(list=>l_mv_name, method=>'c', atomic_refresh=>false); dbms_output.put_line('done successfully') ; exception when others then l_code := sqlcode; l_errm := sqlerrm; dbms_output.put_line(l_code || ': ' || l_errm) ; commit; end; / grant execute on my_mv_refresh to user1; -- Regards Sidney Chen -- //www.freelists.org/webpage/oracle-l