Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle-物化视图混乱(Toad IDE在表部分显示MV时是否错误?)_Oracle_Oracle10g_Toad_Materialized Views - Fatal编程技术网

Oracle-物化视图混乱(Toad IDE在表部分显示MV时是否错误?)

Oracle-物化视图混乱(Toad IDE在表部分显示MV时是否错误?),oracle,oracle10g,toad,materialized-views,Oracle,Oracle10g,Toad,Materialized Views,我对物化视图感到困惑。要么是我使用的Toad IDE让我困惑,要么是我对MVs理解不够 我在Oracle中创建了一个物化视图,如下所示 CREATE MATERIALIZED VIEW TESTRESULT NOCACHE LOGGING NOCOMPRESS NOPARALLEL BUILD IMMEDIATE REFRESH FORCE ON DEMAND WITH PRIMARY KEY AS SELECT ... FROM tables... 我希望创建物化视图,并用查询返回的数

我对物化视图感到困惑。要么是我使用的Toad IDE让我困惑,要么是我对MVs理解不够

我在Oracle中创建了一个物化视图,如下所示

CREATE MATERIALIZED VIEW TESTRESULT
NOCACHE
LOGGING
NOCOMPRESS
NOPARALLEL
BUILD IMMEDIATE
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
AS 
SELECT ...
FROM   tables...
我希望创建物化视图,并用查询返回的数据填充它。好吧,没什么大不了的

我感到困惑的是,为什么我的Toad IDE在tables部分下显示一个表“TESTRESULT”。它甚至还有一个“创建表脚本”,我可以看看

但我也在“物化视图”部分下看到了我的物化视图

当我创建物化视图时,Oracle在幕后创建表吗?看起来好像有两个独立的对象,一个物化视图和一个表?有人能解释一下在创建物化视图时幕后发生了什么吗?是蟾蜍错了还是我误解了什么

蟾蜍版本:9.6.1.1
Oracle: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