Sql 已成功创建物化视图,但刷新时给出查询太长错误
我创建了一个物化视图Sql 已成功创建物化视图,但刷新时给出查询太长错误,sql,plsql,oracle11g,materialized-views,Sql,Plsql,Oracle11g,Materialized Views,我创建了一个物化视图 CREATE MATERIALIZED VIEW apps.RPRO_BILLED_CONTRACTS_MV REFRESH COMPLETE START WITH SYSDATE NEXT (sysdate+1/1440) with rowid AS "query"; 它已成功创建,并在select*操作中返回行。 然而,我想检查它是否令人耳目一新,结果却不是。 我以以下方式运行手动刷新命令: BEGIN DBMS_SNAPSHOT.REFRESH('RPRO_BILL
CREATE MATERIALIZED VIEW apps.RPRO_BILLED_CONTRACTS_MV
REFRESH COMPLETE
START WITH SYSDATE
NEXT (sysdate+1/1440) with rowid
AS "query";
它已成功创建,并在select*操作中返回行。
然而,我想检查它是否令人耳目一新,结果却不是。
我以以下方式运行手动刷新命令:
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.
我很困惑,如果查询太长,为什么要创建视图并返回值,但不刷新。请提供帮助。物化视图的
创建过程与刷新过程不同
在CREATE
期间,可以使用任意长度的SQL语句创建物化视图。在刷新期间
,将强制执行下述64K限制:
一种可能的解决方法是链接物化视图创建。如果可以将查询分解为更小的块,则可以使用本身引用物化视图的子查询来构建最终的物化视图。那么查询的总长度是否>64K?是的,它>64K,但是为什么要创建视图并获取行。根据SQL语句的长度没有限制;然而,我在11.1中找不到关于物化视图查询长度的相应文档限制。至于“为什么会有这样的限制”,也许你应该重新提出这个问题。祝你好运。