我有一个我已经使用了很长一段时间的物化视图,我每晚在另一份工作之前执行快速刷新。PROC 通过自动化系统(Active Batch)被调用,并包含以下刷新:
DBMS_MVIEW.REFRESH(LIST=>'GLMV_TAX_CODE_HIST',PARALLELISM => 8);
几周前,我随机开始收到此错误:
Exit Code Description: ORA-12008: error in materialized view refresh path
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2566
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2779
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2748
经过一番研究,我认为这只是根据我的发现授予权限的问题,所以运行了以下内容,这似乎有效:
GRANT SELECT ON MLOG$_TAX_CODE_HIST TO MYUSER;
GRANT CREATE ANY materialized view to MYUSER;
GRANT ALTER ANY MATERIALIZED VIEW TO MYUSER;
Grant ALTER ANY SNAPSHOT to MYUSER;
Grant create session, alter any materialized view to MYUSER;
认为这可能是我调用 PROC 的用户的问题,但即使在将其更改为 Mview 的创建者等之后,仍然出现相同的错误....现在奇怪的部分是,如果我通过客户端应用程序(Toad),我以同一个用户手动运行刷新,它工作正常,没有错误,但是一旦我尝试通过“Active Batch”工作流自动化调用它,它就会再次发生......任何人都有知道我在这里缺少什么吗?