programing

Oracle에서 구체화 된 뷰를 새로 고치는 방법

copyandpastes 2021. 1. 17. 12:33
반응형

Oracle에서 구체화 된 뷰를 새로 고치는 방법


다음을 사용하여 구체화 된 뷰를 새로 고치려고합니다.

DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')

그러나 잘못된 SQL 문을 던지고 있습니다.

그런 다음 다음과 같은 저장 프로 시저를 만들었습니다.

CREATE OR REPLACE 
PROCEDURE MAT_VIEW_FOO_TBL 
IS
BEGIN
   DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')
END MAT_VIEW_FOO_TBL IS;

이 절차는 성공적으로 생성되었지만이 절차를 다음과 같이 호출 할 때

MAT_VIEW_FOO_TBL;

다시 오류가 발생합니다.

이 문제에 대한 해결책을 제안 해주십시오.

감사합니다, Srinivas


이 시도:

DBMS_SNAPSHOT.REFRESH( 'v_materialized_foo_tbl','f'); 

첫 번째 매개 변수는의 이름 mat_view이고 두 번째 는 유형을 정의합니다 refresh. f는 빠른 새로 고침을 나타냅니다. 그러나이 점을 명심하면 다른 새로 고침 타이밍 옵션 보다 우선 합니다.


이 스크립트를 실행하여 구체화 된 뷰에서 데이터를 새로 고칩니다.

BEGIN
DBMS_SNAPSHOT.REFRESH('Name here');
END;

게임에 조금 늦었지만이 질문에서 원래 구문을 작동시키는 방법을 찾았습니다 (저는 Oracle 11g에 있습니다)

** 먼저 MV의 스키마로 전환 **

EXECUTE DBMS_MVIEW.REFRESH(LIST=>'MV_MY_VIEW');

또는 몇 가지 옵션을 추가 할 수 있습니다.

EXECUTE DBMS_MVIEW.REFRESH(LIST=>'MV_MY_VIEW',PARALLELISM=>4);

이것은 실제로 나를 위해 작동하며 병렬 처리 옵션을 추가하면 실행 속도가 약 2.5 배 빨라졌습니다.

추가 정보 : 구체화 된 뷰를 병렬로 새로 고치는 방법


다음과 같이 구체화 된 뷰를 완전히 새로 고칠 수 있습니다.

EXECUTE  
DBMS_SNAPSHOT.REFRESH('Materialized_VIEW_OWNER_NAME.Materialized_VIEW_NAME','COMPLETE');

가장 좋은 방법은 '?'를 사용하는 것입니다. 메서드에 대한 인수. 이렇게하면 DBMS_MVIEW가 최상의 새로 고침 방법을 선택하므로 가능한 가장 빠른 새로 고침을 수행합니다. , 실제로 완전히 새로 고침이 필요할 때 method => 'f'와 같은 것을 시도해도 실패하지 않습니다. :-)

SQL * Plus 프롬프트에서 :

EXEC DBMS_MVIEW.REFRESH('my_schema.my_mview', method => '?');

SQL Developer로 작업하는 경우 dbms_view를 소문자로 입력해야합니다. 아직 코드에서 프로 시저를 호출하지 않았지만 나머지는 잘 컴파일되었습니다.

CREATE OR REPLACE PROCEDURE "MAT_VIEW_FOO_TBL" AS 
BEGIN
  dbms_mview.refresh('v_materialized_foo_tbl');
END;

아래 구문을 사용해보십시오.

일반적인 구문 :

begin
dbms_mview.refresh('mview_name');
end;

예:

begin
dbms_mview.refresh('inv_trans');
end;

위의 내용이 도움이되기를 바랍니다.


EXECUTE dbms_mview.refresh ( 'view name', 'cf');


내장 된 프로 시저 또는 패키지를 사용해야 할 때 "EXECUTE"명령을 사용해야 작동합니다.

전의:

EXECUTE exec DBMS_MVIEW.REFRESH ( 'v_materialized_foo_tbl');

참조 URL : https://stackoverflow.com/questions/11554886/how-to-refresh-materialized-view-in-oracle

반응형