깜놀하는 해므찌로

Egov Spring MyBatis Oralce Merge 오라클 머지 사용 예시 본문

IT

Egov Spring MyBatis Oralce Merge 오라클 머지 사용 예시

agnusdei1207 2022. 7. 12. 07:22
반응형
SMALL
<!-- 테이블정보 MERGE(오라클) -->
<insert id="mergeOracle" parameterType="VO">
    /* MaDbQryMapper.mergeOracle */
     MERGE INTO TABLE_NAME
     USING DB_ROOT
        ON TBL_NM = #{tblNm}
       AND SYS_SN = #{systSerno}
      WHEN MATCHED THEN
    UPDATE
       SET DATA_NOCS 	= #{dataCnt}
         , LAST_CHG_DT 	= CASE WHEN #{dataCnt} != DATA_NOCS THEN CURRENT_TIMESTAMP ELSE LAST_CHG_DT END
         , IDNTY_DT 	= DECODE(#{tblKrNm}, NULL, CURRENT_DATE, '', CURRENT_DATE, NULL)
         , COL_NOCS 	= #{colCnt}
         , TBL_KORN_NM 	= #{tblKrNm}
      WHEN NOT MATCHED THEN
    INSERT (TBL_NM, COL_NOCS, DATA_NOCS, SYS_SN, TBL_KORN_NM, IDNTY_DT)
    VALUES (#{tblNm}, #{colCnt}, #{dataCnt}, #{systSerno}, #{tblKrNm}, DECODE(#{tblKrNm}, NULL, CURRENT_DATE, '', CURRENT_DATE, NULL))
</insert>

1. Merge 문은 조건을 만족하면 Update 만족하지 않다면 Insert 를 할 수 있습니다.

2. When Matched Then / When Not Matched Then 크게 두 개의 구조로 나뉘어 집니다.

반응형
LIST