小编Axe*_*auf的帖子

再生垫。由于 dba_summaries 条目,在 Oracle 中查看失败,如何防止?

我在我们当前的项目中多次遇到这里描述的问题,我想了解它是如何发生的以及如何在将来防止它。

  • DBA_SUMMARIES在那里为用户的 MV 创建条目的含义和原因是什么?
  • 有没有办法以标准用户身份删除那里的条目,以便我可以重新创建 MV 而不会遇到上述问题?

主要问题是SYSDBA删除冲突摘要需要特权。由于我们SYSDBA在目标实例上没有帐户,因此我们无法在没有数据库支持团队人员介入的情况下重新创建我们的 MV。

任何指向文档的指针,如果有人可以解释背后的逻辑DBA_SUMMARIES是什么以及我如何防止这个问题发生,那就太好了。

我们观察到的 Oracle 版本是 11.2.0.1.0(在 64 位 Linux 上),我们没有支持合同,因此无法获得 Oracle 支持。

更新/解决方案

感谢下面杰克的回答,我已经能够绕过这个问题,因为我们似乎真的遇到了他提到的错误。当我第一次删除 MV 上的所有索引时,我没有收到错误消息,并且能够按预期重新创建 MV(它在USER_OBJECTS删除后不再显示)。

这就是我现在的做法(为简洁起见剪掉了):

SET serveroutput ON
SET echo ON

DECLARE
  CURSOR mv_indexes
  IS
    SELECT 'DROP INDEX '
      || index_name AS stmt
    FROM user_indexes
    WHERE table_name = 'MV_NAME'
    AND table_owner  = 'USER';
BEGIN
  FOR ix IN mv_indexes
  LOOP
    dbms_output.put_line('Executing: ' || ix.stmt);
    EXECUTE immediate ix.stmt;
  END LOOP; …
Run Code Online (Sandbox Code Playgroud)

oracle materialized-view

5
推荐指数
1
解决办法
2582
查看次数

标签 统计

materialized-view ×1

oracle ×1