【问题标题】:Materialized view with OracleOracle 的物化视图
【发布时间】:2010-12-12 22:39:57
【问题描述】:

我在脚本中有以下行,但我不明白“使用”部分的用途。
我在谷歌上找不到任何东西。有谁熟悉吗?
非常感谢!!

CREATE MATERIALIZED VIEW "PVTRNDM"."DM_MVW_DAILY_CAL" 
 USING ("DM_MVW_DAILY_CAL", 
        (8, 'PLANVP.XXXX.INT', 1, 0, 0, "PVTRN", "DAILY_CAL", '2009-10-15 16:12:25', 8, 45073, '2009-10-15 16:12:25', '', 1, '0E', 6548400, 0, NULL), 
        2101313, 8, ('1950-01-01 12:00:00', 111, 0, 0, 6548400, 0, 2054, 2, NULL, NULL)) 
 REFRESH FORCE AS 
 select day_date, cal , sum(NVL(daily_du, 0)) AS daily_du FROM PVPROD.daily_cal GROUP BY day_date, cal ;

【问题讨论】:

  • 我很难过。甚至文档似乎也没有涵盖这个 USING 子句。这种说法是否有效?
  • 是的!这个有一个问题,我正在尝试解决,但是在我的脚本中还有很多像这样的问题,而且它们都工作得很好!
  • 希望我能找到更多。稍微玩了一下语法,它是有效的。在快速浏览 SQL 参考、数据仓库或复制手册的相关部分时,没有看到任何文档。
  • 顺便说一句,Oracle 的哪个版本?
  • 脚本起源于哪里?

标签: sql oracle oracle10g materialized-views


【解决方案1】:

嗯,这很有趣。我将代码插入 toad 并进行了一些更改:

创建物化视图 mv_jfhtesting 使用 ("mv_jfhtesting",("hi","by"))
REFRESH FORCE AS 选择“这个”、“那个” 来自双重

这导致:ORA-12037 - 未知的导出格式 哪一个,当我查到它时:

原因:试图导入一个 由一个导出的物化视图 未知的导出版本(例如,从 比导入站点更新的版本)

操作:使用 已知的出口版本 导入网站。

所以,我猜这个子句从另一个 MV 导入数据。 (甚至它本身,也许?) 抱歉我没时间玩这个了

【讨论】:

  • 看起来不错!!虽然我想知道所有这些值是如何生成的以及它们的含义¿?
  • 如果我不得不猜测,它首先是如何创建视图的一部分。如果我不得不猜测,其中一些值更像是默认值。所以,基本上,有人用 USING 子句以某种聪明或有趣的方式设置了一个 MV,其中一些值是专门选择的,而其他的只是由 oracle 生成的(有点像你可能只是做“创建表” jfhtab (mycol1 varchar2(100))" 但如果您查看 TOAD 或类似的脚本,您也会获得所有存储参数)
【解决方案2】:

奇怪。您是否在数据库中有该对象,如果有,DBMS_METADATA.GET_DDL 为您提供了什么。 如果该格式的 SQL 不存在,我怀疑有人导出了模式并将 SQL 从 DUMP 文件中复制出来。

【讨论】:

  • 是的,代码来自转储文件。我会尝试看看 DBMS_METADATA.GET_DDL 给出了什么。
  • 顺便说一句,我不是工作中的数据库管理员。我是一名程序员。只是想帮助她。由于某些完全不合我意的原因,她不得不中断导入。
【解决方案3】:

我想我已经想通了(或者至少有一个建议)。 我从具有 REFRESH ON DEMAND 物化视图的用户导出,然后尝试将其导入具有 CREATE TABLE 但没有 CREATE MATERIALIZED VIEW 权限的用户。

它创建了一个同名的表,但在物化视图上出错了。 我的猜测是,在进行导出时,它会将 MV 中的数据导出为表格。 CREATE MATERIALIZED VIEW 的这种奇怪语法将该表变成了一个 MV。我猜日期与上次在源数据库上刷新 MV 的时间有关(如果有可用于下一次刷新的 MV 日志,这可能是相关的)。

【讨论】:

    【解决方案4】:

    USING 是某种 JOIN。

    Use "USING" for Joins

    【讨论】:

    • 在标准的 Select 查询中,我会同意,但在创建视图时.. 我不知道...此外,为什么要指定所有这些值?
    • 问题是询问USING的不同用法
    【解决方案5】:

    他们是USING INDEX 子句

    【讨论】:

    • 不要这么认为,关键字INDEX必须出现在语句中。
    • 问题是询问有关 USING 的不同用法(并且链接也已损坏)。
    猜你喜欢
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2011-11-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多