Oracle大量數據 修改或插入 merge into


  <insert id="mergeBank" parameterType="java.util.List">
        merge into EMP a   //into 后跟要去插入的表
        using
        (
        <foreach collection="emps" item="emp" open="" close="" separator="union all">//循環傳進來的對象集合 
            select
            #{emp.sjdwdm} sjdwdm,
            #{emp.cbkmid} cbkmid,
            #{emp.department} department,
            #{emp.station} station,
            #{emp.id} id
            from dual  //這個我理解就是虛空表 固定寫法
        </foreach>
        ) b
        on (
        a.ID = b.id //表關聯關系 一旦寫了下方則該字段不能被 update
        )
        when
        matched then  //滿足就修改
        UPDATE SET
        a.SJDWDM = b.sjdwdm,
        a.CBKMID=b.cbkmid,
        a.DEPARTMENT = b.department,
        a.STATION=b.station
        when
        not matched then  //不滿足添加
        INSERT(
        a.SJDWDM,
        a.CBKMID,
        a.DEPARTMENT,
        a.STATION
        ) VALUES(
        b.sjdwdm,
        b.cbkmid,
        b.department,
        b.station
        )
    </insert>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM