mybatis+oracle 批量插入,若数据库中有则做更新操作
(
id ,
out_trade_no ,
transaction_id
)
select SEQ_WXPAY_ACCOUNT.nextval id,a.* FROM (
#{wxpayAccount.outTradeNo ,jdbcType=VARCHAR},
#{wxpayAccount.transactionId ,jdbcType=VARCHAR}
FROM dual
#{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
)
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 批量插入,若数据库中有则做更新操作的更多相关文章
- mybatis+Oracle 批量插入数据,有数据做更新操作
<!-- 批量添加 --> <insert id="batchAdd" parameterType="java.util.List"& ...
- MyBatis Oracle批量插入
1.oracle如何insert into 多个values https://www.cnblogs.com/mq0036/p/6370224.html?utm_source=itdadao& ...
- mybatis+oracle批量插入报不符合协议和sql未正确结束
在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...
- mybatis Oracle 批量插入,批量更新
传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...
- mybatis oracle -批量插入,存在则更新
<insert id="batchUpdatePBWUserInfo" parameterType="java.util.List"> MERGE ...
- mybatis foreach批量插入数据:Oracle与MySQL区别
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
- mybatis+oracle 完成插入数据库,并将主键返回的注意事项
mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...
- mysql基础---->mybatis的批量插入(一)
这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...
- oracle 批量插入-支持序列自增
1.创建表.序列 -- Create table create table test_batch ( id number not null, name ), account ) ) -- Create ...
随机推荐
- Swift 字面量
所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值.比如在下面: let aNumber = //整型字面量 let aString = &quo ...
- Eclipse添加Android library 错误的原因
这两天把项目从本地转移到GIT上,本来我的Workspace是在D盘,现在因为感觉D盘不够用,就把GIT到的项目放到E盘了 按照以往的用法,GIT下来以后再往属性里添加依赖库就OK了,但是这次怎么也无 ...
- Unity3d Terrain splat 9 is null 解决方法
是因为地形的 材质刷和树木或者草的刷子丢失引起.重新赋值或者删除掉就可以了
- 【ARM-Linux开发】内核3.x版本之后设备树机制
内核3.x版本之后设备树机制 Based on Linux 3.10.24 source code 参考/documentation/devicetree/Booting-without- ...
- 最新 汽车之家java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.汽车之家等10家互联网公司的校招Offer,因为某些自身原因最终选择了汽车之家.6.7月主要是做系统复习.项目复盘.Leet ...
- jquery设置input不可编辑,背景变灰,鼠标变禁止
先看效果 $("#id").attr("onfocus", "this.blur()"); $("#id").css(& ...
- [CF1010D]Mars Over_位运算性质
Mars rover 题目链接:http://codeforces.com/problemset/problem/1010/D 数据范围:略. 题解: 因为每次只改一个,改完之后改回去,这个性质很重要 ...
- virtualbox 扩容存储
本文讲解一种方式: 第一步: 我们需要将virtual box 设置成全局的环境变量 第二步: 找到要修改的xxx.vdi文件,通过命令来修改 下面操作步骤 1.设置virtual box 的环境变量 ...
- lua介绍及环境搭建(一)
一.介绍 1.简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 其设计目的是为了嵌入应用程序中,从 ...
- [github] 关于华为鸿蒙OS
English Docs | 中文文档 | Türkçe Dökümanlar HarmonyOS Ⅰ. 鸿蒙系统简介 鸿蒙系统(HarmonyOS),是第一款基于微内核的全场景分布式OS,是华为自主 ...