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