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