Oracle-物化视图混乱(Toad IDE在“表”部分中显示MV时出错吗?)

|| 我对物化视图感到困惑。我正在使用的Toad IDE会让我感到困惑,或者是我对MV的理解不够。 我在Oracle中通过这样的方式创建了一个物化视图。
CREATE MATERIALIZED VIEW TESTRESULT
NOCACHE
LOGGING
NOCOMPRESS
NOPARALLEL
BUILD IMMEDIATE
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
AS 
SELECT ...
FROM   tables...
我希望将创建物化视图并使用查询返回的数据进行填充。好吧,没什么大不了的。 我感到困惑的是为什么我的Toad IDE在表部分下显示表\'TESTRESULT \'。我什至可以看到它有一个“创建表脚本”。 但是,我还在“材料化视图”部分下看到了我的物化视图。 创建实例化视图时,Oracle会在后台创建表吗?看起来好像有两个单独的对象,一个物化视图和一个表?有人可以在创建实例化视图时解释幕后的情况吗?蟾蜍说错了还是我误会了什么? 蟾蜍版本:9.6.1.1 甲骨文:10g     
已邀请:
是的,Oracle在后台创建了两个对象,一个是实际实现结果的表,另一个是具有所有元数据(查询,属性等)的实现视图。这与创建唯一约束时发生的情况非常相似-Oracle创建与该约束同名的唯一索引以实际执行该约束,然后它自己创建约束。如果在预建表上创建实例化视图,则可以为该表和该实例化视图使用不同的名称,就像可以创建使用具有不同名称的现有索引的约束一样。
SQL> select object_name, object_type
  2    from user_objects
  3
SQL> ed
Wrote file afiedt.buf

  1  select object_name, object_type
  2    from user_objects
  3*  where object_name = \'MV_EMP\'
  4  /

no rows selected

SQL> create materialized view mv_emp
  2  as
  3  select *
  4    from emp;

Materialized view created.

SQL> column object_name format a30;
SQL> select object_name, object_type
  2    from user_objects
  3   where object_name = \'MV_EMP\';

OBJECT_NAME                    OBJECT_TYPE
------------------------------ -------------------
MV_EMP                         TABLE
MV_EMP                         MATERIALIZED VIEW
    

要回复问题请先登录注册