DBMS_Snapshot.刷新在11g上不起作用,物化视图错误



我在Oracle 10g上执行了DBMS_Snapshot.refresh,它工作正常,但是当我在Oracle 11g上执行相同的操作时,它给出了以下错误

DBMS_SNAPSHOT.refresh('Table1','F'); 
 BEGIN DBMS_SNAPSHOT.refresh('Table1','F'); END; 
 . 
 *
 ERROR at line 1: 
 ORA-23401: materialized view "localuser"."Table1" does not 
 exist 
 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2558 
 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2771 
 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2740 
 ORA-06512: at line 1

任何帮助非常感谢

问候。

南迪什

好的,这可能有很多原因。

  1. 您还没有在 11g 中重新创建 MV。 您无法刷新 MV 来创建它。

  2. 您没有为 MV 所在的架构重新创建同义词(公共或私有)。

  3. 您没有在另一个架构中重新创建对 MV 的授权,因此请创建它们。

您可以尝试DBMS_MVIEW而不是DBMS_SNAPSHOT。

exec dbms_mview.refresh('Table1');

错误消息表明它正在以区分大小写的方式查找"Table1"。尝试传入'TABLE1'

我的情况没有什么不同。DBMS_MVIEW。刷新('ABC.XYZ') 调用从预言机存储过程 (SCHEMA1.PROC1)。我以其他用户 (用户 A) 的身份调用 SP。我已经将所有权限授予了用户,但没有等待。显然,oracle似乎并不关心用户拥有的权限,它寻找包所有者的权限。这很奇怪,与我到处准备的相反。但它确实有效

不起作用:

向用户 A 授予更改任何实例化视图的权限;

授予 ABC 上的选择。用户 A 的 MLOG$_XYZ;

工作:

授予更改任何实例化视图以SCHEMA1;

授予 ABC 上的选择。MLOG$_XYZ 给用户 A, SCHEMA1;

相关内容

  • 没有找到相关文章

最新更新