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
'programing' 카테고리의 다른 글
Android Stack 활동을 지우는 방법은 무엇입니까? (0) | 2021.01.17 |
---|---|
PHP-오버로드 된 속성의 간접 수정 (0) | 2021.01.17 |
문자열이 특정 패턴으로 끝나는 지 확인 (0) | 2021.01.17 |
C #을 사용하여 자체 서명 된 인증서를 만드는 방법은 무엇입니까? (0) | 2021.01.17 |
Haskell의 의존성 주입 : 관용적으로 작업 해결 (0) | 2021.01.17 |