知/ORACLE

MERGE INTO

채수욱 2019. 2. 15. 10:21

MERGE INTO TARGET_TABLE a /* 대상이 테이블 또는 뷰*/

USING DUAL /* 하나의 테이블 대상은 DUAL*/

    on ( a.STAT_DATE = '20190215' AND a.SALE_CODE = '999' ) /* on 조건 : Key */

WHEN MATCHED THEN /* on 조건 데이터 존재시 UPDATE */

    UPDATE SET       /* UPDATE 시 테이블 이름, WHERE 조건 생략 */

        IN_COUNT = 11

        ,OUT_COUNT = 11

        ,UP_DT = TO_CHAR(SYSDATE, 'yyyymmddhhmiss')

WHEN NOT MATCHED THEN /* on 조건 데이터 부재시 INSERT */

    INSERT ( /* INSERT INTO TARGET_TABLE -> INSERT */

      STAT_DATE, SALE_CODE, IN_COUNT, OUT_COUNT, CR_DT, UP_DT

    ) values (

      '20190215', '999', 11, 11, TO_CHAR(SYSDATE, 'yyyymmddhhmiss'), TO_CHAR(SYSDATE, 'yyyymmddhhmiss')

    )