【发布时间】:2014-07-03 16:06:33
【问题描述】:
我创建了一个物化视图。
CREATE MATERIALIZED VIEW apps.RPRO_BILLED_CONTRACTS_MV
REFRESH COMPLETE
START WITH SYSDATE
NEXT (sysdate+1/1440) with rowid
AS "query";
它已成功创建并在选择 * 操作时返回行。 但是我想检查它是否令人耳目一新,事实证明它不是。 我将手动刷新命令运行为:
BEGIN
DBMS_SNAPSHOT.REFRESH('RPRO_BILLED_CONTRACTS_MV');
end;
现在返回错误: 错误报告
ORA-32411: materialized view definition query exceeds the maximum length
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2563
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2776
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2745
ORA-06512: at line 2
32411. 0000 - "materialized view definition query exceeds the maximum length"
*Cause: The materialized view definition query exceeds the 64K limit.
*Action: Change the materialized view definition query so that it does not exceed
the maximum length of 64K.
我很困惑,如果查询太长,怎么会创建视图并返回值但不刷新。请帮忙。
【问题讨论】:
-
那么查询的总长度是 > 64K?
-
是的 > 64k,但为什么要创建视图并获取行。
-
根据this AskTom question,SQL 语句的长度没有限制。 The 64K limit on materialized view queries is documented here for 10g;但是,我在 11.1 中找不到物化视图查询长度的相应记录限制。至于“为什么会有这样的限制”,也许你应该在AskTom上转发这个问题。祝你好运。
标签: sql plsql oracle11g materialized-views