Oracle MERGE (한국어)

요약 :이 자습서에서는 Oracle MERGE 문을 사용하여 업데이트 또는 삽입을 수행하는 방법을 배웁니다. 지정된 조건을 기반으로하는 데이터.

Oracle MERGE 문 소개

Oracle MERGE 문은 하나 이상의 소스 테이블에서 데이터를 선택합니다. 업데이트하거나 목표 테이블에 삽입합니다. MERGE 문을 사용하면 대상 테이블에서 데이터를 업데이트할지 아니면 데이터를 삽입할지 여부를 결정하는 조건을 지정할 수 있습니다.

다음은 Oracle의 구문을 보여줍니다. MERGE 문 :

MERGE 문을 자세히 살펴 보겠습니다.

먼저 업데이트하거나 INTO 절에 삽입하려는 대상 테이블 (target_table).

두 번째, 업데이트하거나 USING 절에 삽입 할 데이터 소스 (source_table)를 지정합니다.

셋째, 다음을 지정합니다. 병합 작업이 업데이트되거나 ON 절에 삽입되는 검색 조건.

대상 테이블의 각 행에 대해 Oracle은 검색 조건을 평가합니다.

  • 결과가 true이면 Oracle은 소스 테이블의 해당 데이터로 행을 업데이트합니다.
  • 결과가 false 인 경우 y 행이 있으면 Oracle은 소스 테이블의 해당 행을 대상 테이블에 삽입합니다.

MERGE 문은 결합 할 때 편리합니다. 한 번의 작업으로 여러 INSERT, UPDATEDELETE 문.

MERGE는 결정적 명령문이므로 동일한 MERGE 명령문에서 대상 테이블의 동일한 행을 여러 번 업데이트 할 수 없습니다. .

선택적인 DELETE WHERE 절을 MATCHED 절에 추가하여 병합 작업 후 정리할 수 있습니다. DELETE 절은 ONDELETE WHERE 모두와 일치하는 대상 테이블의 행만 삭제합니다. 절.

Oracle MERGE 전제 조건

MERGE 문을 실행하려면 INSERTUPDATE 개체 권한. DELETE 절을 사용하는 경우 대상 테이블에 대한 DELETE 객체 권한도 있어야합니다.

Oracle MERGE 예

예를 들어 membersmember_staging의 두 테이블이 있다고 가정합니다.

새 구성원이있을 때마다 members 테이블에 새 행을 삽입합니다. 그런 다음 members 테이블의 데이터가 member_staging 테이블의 데이터와 병합됩니다.

다음 문 membersmember_staging 테이블을 만듭니다.

다음 INSERT 문은 membersmember_staging 테이블에 샘플 데이터를 삽입합니다.

테이블을 member_staging 테이블로 변경하려면 다음 작업을 수행해야합니다.

  • 멤버 ID가 1, 3 인 행을 업데이트합니다. , 4, 6은이 테이블에서 이러한 멤버의 순위 또는 성이 다르기 때문입니다.
  • 멤버 ID가 7-10 인 행은 테이블이지만 member_staging 테이블에는 없습니다.

총 8 개 행을 병합해야합니다.

다음 ing은 이러한 모든 작업을 한 번에 수행하는 MERGE 문입니다.

병합 문은 members<의 각 행을 비교합니다. member_id 열의 값을 기준으로 member_staging 테이블의 각 행이있는 / div> 테이블 (ON 절).

두 테이블의 member_id 열 값이 같으면 MERGE 문은 이름, 성 및 순위를 members 테이블에서 member_staging 테이블로 업데이트합니다. 두 테이블의 이름, 성 또는 순위 열이 다릅니다.

그렇지 않으면 members 테이블의 행을 테이블.

Oracle은 예상대로 병합 된 8 개의 행을 반환했습니다.

이 자습서에서는 Oracle MERGE 문 지정된 조건을 기반으로합니다.

  • 이 자습서가 도움이 되었습니까?
  • 예 아니요

Leave a Reply

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다