在oracle 11g中使用CREATE MATERIALIZED VIEW子句

时间:2015-10-20 08:36:15

标签: sql oracle11g

CREATE OR REPLACE MATERIALIZED VIEW MV_NAME BUILD IMMEDIATE AS
<SQL Query>

所以我在演讲中遵循了这个例子。但是当我在oracle中运行它时,它不起作用。当我用保存为.sql的文件在notepad ++中键入它时,MATERIALIZEDBUILD部分没有像Notepad ++中那样以粗体蓝色字体显示。我在网上做了一些研究,我发现这一切都说我使用的陈述是正确的。但SQL命令行和Notepad ++则另有说法。我在提示符中出现ORA-00922: Missing or invalid option错误。任何人都知道问题是什么以及如何解决它?

1 个答案:

答案 0 :(得分:1)

create materialized view statement不支持您可以使用普通视图的or replace选项。

CREATE MATERIALIZED VIEW [ schema. ] materialized_view
  [ OF [ schema. ] object_type ]
  [ ( { scoped_table_ref_constraint
      | column_alias [ENCRYPT [encryption_spec]]
      }
      [, { scoped_table_ref_constraint
         | column_alias [ENCRYPT [encryption_spec]]
         }
      ]...
    )
  ]
  { ON PREBUILT TABLE
    [ { WITH | WITHOUT } REDUCED PRECISION ]
  | physical_properties materialized_view_props
  }
  [ USING INDEX
    [ physical_attributes_clause
    | TABLESPACE tablespace
    ]...
  | USING NO INDEX
  ]
  [ create_mv_refresh ]
  [ FOR UPDATE ]
  [ { DISABLE | ENABLE } QUERY REWRITE ]
AS subquery ;

如果MV已经存在,则需要在再次创建它之前删除它,而不使用该无效子句。

DROP MATERIALIZED VIEW MV_NAME;
CREATE MATERIALIZED VIEW MV_NAME BUILD IMMEDIATE AS
<SQL Query>