【问题标题】:Oracle - creating a Materialized ViewOracle - 创建物化视图
【发布时间】: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 -“此处不允许列”

标签: oracle materialized-views


【解决方案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,尤其是语法问题。您所要求的一切 + 更多都在那里。一旦您习惯了语言参考文档,它们就会非常有用,而且您可能会学到一些关于您正在研究的内容的新知识。

【讨论】:

    猜你喜欢
    • 2014-04-25
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2010-12-12
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多