Oracle - 创建物化视图

Posted

技术标签:

【中文标题】Oracle - 创建物化视图【英文标题】:Oracle - creating a Materialized View 【发布时间】:2011-12-16 12:51:54 【问题描述】:

我正在阅读一些文章,甚至是堆栈上的一些答案,但我仍然有一些问题。我将发布我的 MV 代码以供可能的分析:

CREATE MATERIALIZED VIEW some_materialized_view
REFRESH COMPLETE
START WITH sysdate
NEXT '2011-12-01' + 31
WIDTH PRIMARY KEY
AS my_query

错误是:

00984. 00000 -  "column not allowed here"

我是不是忘记了什么?我唯一想要的是每个月开始我的MV更新。有人可以帮忙吗?

谢谢!

【问题讨论】:

“此代码对我不起作用” - 错误消息?描述一下您认为“不工作”是什么样子会很有帮助。 我得到的唯一错误是:00984.00000 -“此处不允许列” 【参考方案1】:

您的命令中有两个语法错误。

子句WIDTH PRIMARY KEY 应该是WITH PRIMARY KEYWITH 有错字)

NEXT 子句使用需要 date 关键字的日期文字:

NEXT DATE '2011-12-01' + 31.

所以完整的命令应该是:

CREATE MATERIALIZED VIEW some_materialized_view
REFRESH
  COMPLETE
  START WITH SYSDATE
  NEXT DATE '2011-12-01' + 31
  WITH PRIMARY KEY
AS <your query here>

【讨论】:

非常感谢,那是错误!但是我仍然想知道如何开始每个月更新.. 你可以使用 NEXT add_months(trunc(sysdate,'MM'),1) 谢谢老兄,正是我想要的!!【参考方案2】:

您应该先咨询Oracle documentation,尤其是语法问题。您所要求的一切 + 更多都在那里。一旦您习惯了语言参考文档,它们就会非常有用,而且您可能会学到一些关于您正在研究的内容的新知识。

【讨论】:

以上是关于Oracle - 创建物化视图的主要内容,如果未能解决你的问题,请参考以下文章

如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间

oracle物化视图不会自动更新是怎么回事

Oracle - 物化视图中的视图

Oracle - 子查询的物化视图

解决oracle 物化视图刷新失败

Oracle设置物化视图的自动刷新