1.只批量插入:
insert into WXPAY_ACCOUNT
(
id ,
out_trade_no ,
transaction_id
)
select SEQ_WXPAY_ACCOUNT.nextval id,a.* FROM (
SELECT
#{wxpayAccount.outTradeNo ,jdbcType=VARCHAR},
#{wxpayAccount.transactionId ,jdbcType=VARCHAR}
FROM dual
) a
2.批量插入(存在不插入)
merge into WXPAY_ACCOUNT wa using (
SELECT
#{wxpayAccount.outTradeNo ,jdbcType=VARCHAR} as out_trade_no ,
#{wxpayAccount.transactionId ,jdbcType=VARCHAR} as transaction_id
FROM dual
 ) a ON (
wa.out_trade_no = a.out_trade_no and wa.transaction_id = a.transaction_id
) when NOT MATCHED THEN
INSERT (
id ,
out_trade_no ,
transaction_id
) VALUES (
SEQ_WXPAY_ACCOUNT.nextval    ,
a.out_trade_no ,
a.transaction_id
)
3.批量更新:
update wxpay_account w SET CHECK_STATUS =1
WHERE EXISTS (
SELECT 1 FROM (
SELECT wa.id FROM wxpay_account wa INNER JOIN PAYMENT_ORDER po
ON po.PAYNO = wa.OUT_TRADE_NO AND wa.OUT_REFUND_NO = ‘0’
AND wa.CHECK_STATUS = 0 AND wa.TOTAL_FEE = po.PAYAMOUNT
AND po.PAYTYPE = ‘wxpay’ AND to_char(wa.TRADE_TIME,‘yyyyMMdd’) = #{billDate}
AND po.createtime BETWEEN to_date(#{billDate},‘yyyy-MM-dd’) -1 AND to_date(#{billDate},‘yyyy-MM-dd’) +1
AND substr(wa.OUT_TRADE_NO,1,3) = #{billStart}
UNION ALL
SELECT rwa.id FROM wxpay_account rwa INNER JOIN PAYMENT_ORDER rpo
ON rpo.payno = rwa.OUT_REFUND_NO
AND rwa.CHECK_STATUS = 0 AND rwa.SETTLEMENT_REFUND_FEE = rpo.PAYAMOUNT
AND rpo.PAYTYPE = ‘wxpay’ AND to_char(rwa.TRADE_TIME,‘yyyyMMdd’) = #{billDate}
AND rpo.createtime BETWEEN to_date(#{billDate},‘yyyy-MM-dd’) -1 AND to_date(#{billDate},‘yyyy-MM-dd’) +1
AND substr(rwa.OUT_TRADE_NO,1,3) = #{billStart}
AND substr(rwa.OUT_REFUND_NO,1,3) = #{billStart}
) b where w.id = b.id
)

mybatis+oracle 批量插入,若数据库中有则做更新操作的更多相关文章

  1. mybatis+Oracle 批量插入数据,有数据做更新操作

    <!-- 批量添加 -->     <insert id="batchAdd" parameterType="java.util.List"& ...

  2. MyBatis Oracle批量插入

    1.oracle如何insert into 多个values https://www.cnblogs.com/mq0036/p/6370224.html?utm_source=itdadao& ...

  3. mybatis+oracle批量插入报不符合协议和sql未正确结束

    在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...

  4. mybatis Oracle 批量插入,批量更新

    传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...

  5. mybatis oracle -批量插入,存在则更新

    <insert id="batchUpdatePBWUserInfo" parameterType="java.util.List"> MERGE ...

  6. mybatis foreach批量插入数据:Oracle与MySQL区别

    mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...

  7. mybatis+oracle 完成插入数据库,并将主键返回的注意事项

    mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...

  8. mysql基础---->mybatis的批量插入(一)

    这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...

  9. oracle 批量插入-支持序列自增

    1.创建表.序列 -- Create table create table test_batch ( id number not null, name ), account ) ) -- Create ...

随机推荐

  1. PostgreSQL 之 CREATE FUNCTION

    官方文档 语法: CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } d ...

  2. [Scikit-learn] 1.5 Generalized Linear Models - SGD for Regression

    梯度下降 一.亲手实现“梯度下降” 以下内容其实就是<手动实现简单的梯度下降>. 神经网络的实践笔记,主要包括: Logistic分类函数 反向传播相关内容 Link: http://pe ...

  3. iOS-SVPullToRefresh​下拉刷新,上拉加载(转)

    https://github.com/Sephiroth87/ODRefreshControl 类似刷新控件,类似qq动画的那种刷新. 一.下载第三方库 https://github.com/samv ...

  4. MUI和html5plus

    MUI: http://dev.dcloud.net.cn/mui/snippet/ html5plus: http://www.html5plus.org/doc/h5p.html

  5. appium(api操作)

    driver.current_activity #获取当前activity driver.current_package #获取包名 driver.lock(seconds=2) #息屏 #收起虚拟键 ...

  6. appium(屏幕滑动)

    class handleswipe(): """ 屏幕滑动操作 """ def __init__(self, driver, functio ...

  7. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  8. 软件测试工具LoadRunner常见问题

    1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开Inter ...

  9. 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用

    目录 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用 21.1 read命令键盘读取变量的值 21.1.1 read常用见用法及参数 21.2 流程控制语句if 21.2 ...

  10. mybatis三种批量插入方式对比

    <insert id="addInquiryQA" parameterType="java.util.List"> insert into inqu ...