기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

병합

Merge 접두사를 스크립트의 LOAD 또는 SELECT 문에 추가하여 로드된 테이블을 다른 테이블에 병합하도록 지정할 수 있습니다. 또한 이 문을 부분 로드에서 실행하도록 지정합니다.

일반적인 사용 사례는 변경 로그를 로드하고 이를 사용하여 기존 테이블에 inserts, updatesdeletes를 적용하려는 경우입니다.

구문:  

Merge [only] [(SequenceNoField [, SequenceNoVar])] On ListOfKeys [Concatenate [(TableName)]] (loadstatement | selectstatement)

 

일반(부분적이지 않은) 다시 로드 중에 Merge LOAD 구성은 일반 Load 문으로 작동하지만 오래된 레코드 및 삭제 표시된 레코드를 제거하는 추가 기능을 사용합니다. LOAD 문의 첫 번째 필드에는 작업에 대한 정보가 있어야 합니다. Insert, Update 또는 Delete.

로드된 각 레코드에 대해 레코드 식별자는 이전에 로드된 레코드와 비교되고 최신 레코드(순서 번호에 따라)만 보관됩니다. 최신 기록이 Delete로 표시되면 아무것도 보관되지 않습니다.

Concatenate 접두사가 사용되거나 동일한 필드 집합이 있는 테이블이 이미 있는 경우 수정할 관련 테이블이 됩니다. 그렇지 않으면 Merge LOAD 구성의 결과가 새 테이블에 저장됩니다.

Concatenate 접두사가 사용되는 경우 결과 테이블에는 Merge에 대한 입력으로 사용되는 변경 로그보다 많은 필드가 있을 수 있습니다.

부분 다시 로드도 전체 다시 로드와 마찬가지입니다. 유일한 차이점은 Merge LOAD 구성이 새 테이블을 만들지 않는다는 것입니다. 수정할 이전 스크립트 실행의 관련 테이블이 항상 존재합니다.

로드된 변경 로그가 누적된 로그인 경우, 즉 이미 로드된 변경 사항이 포함된 경우 매개 변수 SequenceNoVarWhere 절에서 사용하여 입력 데이터의 양을 제한할 수 있습니다. 그런 다음 필드 SequenceNoFieldSequenceNoVar보다 큰 레코드만 로드하도록 Merge LOAD를 수행할 수 있습니다. 완료되면 Merge LOADSequenceNoField 필드에 표시된 최댓값으로 SequenceNoVar에 새 값을 할당합니다.

인수:  

인수
인수 설명
only 부분 다시 로드 중에만 문이 실행되어야 함을 지정하는 선택적인 한정자입니다. 일반(부분적이지 않은) 다시 로드 중에는 무시해야 합니다.
SequenceNoField 작업 순서를 정의하는 타임스탬프 또는 시퀀스 번호가 포함된 필드의 이름입니다.
SequenceNoVar

병합되는 테이블 SequenceNoField에 대해 최댓값이 할당되는 변수의 이름입니다.

ListOfKeys 기본 키를 지정하는 쉼표로 구분된 필드 이름 목록입니다.
operation LOAD 문의 첫 번째 필드에는 작업에 대한 정보가 포함되어야 합니다. Insert, Update 또는 Delete. ‘i’, ‘u’ 및 ‘d’도 허용됩니다.

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!

분석 현대화 프로그램에 참여

Remove banner from view

분석 현대화 프로그램으로 귀중한 QlikView 앱을 손상시키지 않고 현대화하십시오. 여기를 클릭 하여 자세한 내용을 참조하거나 다음에 연결하십시오. ampquestions@qlik.com