2014-05-15 4 views
2

구체화 된보기를 작성했습니다.구체화 된보기가 성공적으로 작성되었지만 u 리를 제공하는 데 조회가 너무 길어 짐

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. 

쿼리 뷰가 생성 냐고, 너무 긴 경우 나, 혼란 스러워요 및 값을 반환하지만 새로 고치지는 않습니다. 도와주세요.

+0

그래서 **는 검색어의 총 길이> 64K **입니까? –

+0

그렇습니다.> 64k,하지만 왜 뷰가 생성되고 행을 가져 오는지. – user3640112

+2

[이 AskTom 질문] (https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3A%3A%3A%3AP11_QUESTION_ID:41742083561301)에 따르면 길이에는 제한이 없습니다 SQL 문. [10g에 대한 구체화 된 뷰 쿼리에 대한 64K 제한은 여기에 설명되어 있습니다] (http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6002.htm); 그러나 11.1에서는 구체화 된 뷰 쿼리 길이에 대한 문서화 된 제한을 찾을 수 없었습니다. "왜 그런 한계가 있는가?"와 관련하여 아마도이 질문을 [AskTom] (https://asktom.oracle.com)에 재 게시해야합니다. 행운을 빌어 요. –

답변

0

CREATE 구체화보기의 프로세스는 REFRESH 프로세스와 다릅니다.

CREATE 동안 모든 길이의 SQL 문을 사용하여 구체화 된보기를 작성할 수 있습니다. REFRESH 동안, 아래에 설명 된 64K 제한이 적용됩니다 :

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6002.htm

가능한 해결 방법은 체인에 구체화 뷰 생성이다. 쿼리를 작은 덩어리로 분류 할 수 있다면 구체화 된 뷰를 참조하는 하위 쿼리를 사용하여 최종 구체화 된 뷰를 작성할 수 있습니다.