欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Oracle】oracle merge into 合并

程序员文章站 2022-05-24 21:08:09
...
  MERGE INTO T_EH_COUNTER_CHARGING_SUM a
        USING (SELECT #{empNo,jdbcType=VARCHAR} as emp_no,
                      #{sumDay,jdbcType=TIMESTAMP} as sum_day,
                      #{sumCnt,jdbcType=DECIMAL} as sum_cnt,
                      #{sumAmt,jdbcType=DECIMAL} as sum_amt,
                      #{branchCode,jdbcType=VARCHAR} as branch_code,
                      #{orgCode,jdbcType=VARCHAR} as org_code
               FROM dual) b
        ON (a.emp_no = b.emp_no AND a.sum_day = b.sum_day)
        WHEN MATCHED THEN
            UPDATE
            SET a.sum_cnt = b.sum_cnt,
                a.sum_amt = b.sum_amt
        WHEN NOT MATCHED THEN
            INSERT (id, emp_no, sum_day, sum_cnt, sum_amt, creation_date, branch_code, org_code)
            VALUES (seq_eh_counter_chargingsum.nextval,
                    b.emp_no,
                    b.sum_day,
                    b.sum_cnt,
                    b.sum_amt,
                    sysdate,
                    b.branch_code,
                    b.org_code)

场景: 实时拉取数据,对拉取到的数据,存在则更新某字段,不存在则新增。