TOAD-修改实体化视图选择查询而不删除

时间:2013-02-10 18:47:11

标签: oracle10g toad materialized-views

有没有办法可以编辑MVIEW查询而不在TOAD中删除它。我不确定我们是否可以这样做?如果不是,我怎么能以不影响表内容的方式进行呢?

提前致谢

2 个答案:

答案 0 :(得分:2)

您无法更改实体化视图查询,您必须删除并重新创建它。

请参阅:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_2001.htm

  

使用ALTER MATERIALIZED VIEW语句修改现有语句   物化视图有以下一种或多种方式:

     
      
  • 更改其存储特征

  •   
  • 更改其刷新方法,模式或时间

  •   
  • 改变其结构,使其成为不同类型的物化   图

  •   
  • 启用或禁用查询重写

  •   

答案 1 :(得分:0)

正如Jeffre Kemp所指出的,您无法更改现有物化视图的查询。

但是,如果您希望将来有必要进行更改,则可以选择以下方法之一:

  • 使用中间VIEW完成所有繁重的工作;您的MATERIALIZED VIEW然后做一个简单的SELECT * FROM myView。这允许您更改查询 - 但是,它不允许您在MATERIALIZED VIEW中添加/删除列
  • 为物化视图使用预先构建的表格;这在逻辑上将保存内容的TABLE与用于更新内容的查询分开。现在,您可以删除MATERIALIZED VIEW,根据需要在TABLE中添加/删除列,然后重新创建MATERIALIZED VIEW
  • 对查询MATERIALIZED VIEW的所有代码使用同义词;如有必要,使用CTAS创建备份表,将同义词指向此备份表,删除并重新创建您的MATERIALIZED VIEW,将同义词指回MATERIALIZED VIEW,然后删除备份表(这就是我们的工作方式)它)