쿼리 기반 업데이트

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 기타 | PL / SQL | SQL | RAC | WebLogic | Linux

홈 “기사”기타 “여기

이 기사에서는 다른 테이블의 데이터를 사용하여 테이블을 업데이트하는 방법을 설명합니다.

  • 설정
  • 서브 쿼리 방법
  • 인라인보기 방법
  • MERGE 문 방법

관련 기사

  • MERGE 문

설정

DEST_TAB 테이블에는 10,000 개의 행이 있습니다. SOURCE_TAB 테이블에는 5,000 개의 행이 있으며 각 행에는 DEST_TAB 테이블의 행과 일치하는 키 값이 있지만 및 DESCRIPTION 열.

이 시점에서 DESCRIPTIONDEST_TAB 테이블의 div> 열에 “Updated”라는 단어가 포함되어 있습니다.

SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>

목표는 SOURCE_TAB 테이블의 데이터가있는 DEST_TAB 테이블의 행.

Subquery Method

T 첫 번째 옵션은 SOURCE_TAB 테이블에서 올바른 데이터를 가져 오기 위해 하위 쿼리를 사용하여 DEST_TAB 테이블을 업데이트하는 것입니다. SOURCE_TABDEST_TAB 테이블에서 행을 제외하는 EXISTS 술어를 확인하십시오. > 테이블. 이것이 없으면 일치하지 않는 행의 값이 NULL로 설정됩니다.

현재 데이터 볼륨에 대한 실행 계획이 아래에 나와 있습니다.

워크로드가 충분히 크고 서버가 가능한 경우 추가 작업 부하에 대처하기 위해 PARALLEL 힌트를 사용하여이 작업을 병렬로 실행할 수 있습니다.

인라인보기 방법

두 번째 옵션 두 테이블을 인라인 뷰로 결합하고이를 기반으로 업데이트하는 것입니다.

현재 데이터 볼륨에 대한 실행 계획이 아래에 나와 있습니다.

워크로드가 충분히 크고 서버는 추가 작업 부하를 처리 할 수 있으며, PARALLEL 힌트를 사용하여이 작업을 병렬로 실행할 수 있습니다.

업데이트 된 행 수는 추가하여 변경할 수 있습니다. 인라인보기 또는 기본 업데이트 문에 WHERE 절을 추가합니다.

  • MERGE 문

희망 도움이됩니다. Tim에게 감사합니다 …

맨 위로 이동

답글 남기기

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