一直以为物化视图和普通视图不同之处是物化视图是物理存在的、实际占用空间的,而普通视图是逻辑意义上的。今天发现错了:物化视图也是一个逻辑上的概念,只不过在建立物化视图时,它会自动生成一个与物化视图名称相同的表,实际数据都存在表里
测试如下:
SQL> SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='B';
OBJECT_NAME OBJECT_TYPE
-------------------------------------------------------------------------------- ------------------
SQL> CREATE MATERIALIZED VIEW B AS SELECT * FROM DUAL;
Materialized view created
SQL> SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='B';
OBJECT_NAME OBJECT_TYPE
-------------------------------------------------------------------------------- ------------------
B TABLE
B MATERIALIZED VIEW
SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME='B';
SEGMENT_NAME
--------------------------------------------------------------------------------
B
如果建立物化视图的时候,物化视图与库中已经存在的表重名,则会出错。
谨记录以上文字,谨防低级错误!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63699/,如需转载,请注明出处,否则将追究法律责任。