mybatis 使用oracle merge into 语句踩坑实录
由于需求涉及oracle的clob类型字段,在mybatis的mapper xml文件中编写merge into语句时总是失败。
附上错误代码
- <insert id="mergeInto">
- <selectKey resultType="java.lang.String" order="BEFORE"
- keyProperty="id">
- SELECT to_char(sysdate,'yyyymmdd')||seq_dr_bcxx.nextval
- AS ID FROM dual
- </selectKey>
- MERGE INTO dr_doc_info doc
- USING (SELECT #{cankwxzwtm} cankwxzwtm,
- #{zz} zz FROM dual) d
- ON (doc.cankwxzwtm = d.cankwxzwtm and doc.zz =
- d.zz)
- WHEN matched THEN
- UPDATE SET doc.MOD_TIME =
- #{modTime},doc.UPD_USER = #{updUser}
- WHEN not matched THEN
- INSERT (
- ID,
- CKWXLX,
- CANKWXBH,
- CANKWXZWTM,
- CANKWXYWTM,
- ZZ,
- DYZZXM,
- DIYZZDW,
- DYZZDZ,
- TXZZDZ,
- TXZZXM,
- TXZZDW,
- KANM,
- YEAR,
- JUAN,
- QI,
- YEMA,
- ZWGJC,
- YWGJC,
- <!-- zhongwzy, YINGWZY, -->
- FUND_TYPE,
- FLH,
- IS_OPEN,
- <!-- CKWXLY, -->
- REG_TIME,
- MOD_TIME,
- MEMO,
- CRT_USER,
- UPD_USER
- )VALUES(
- #{id,jdbcType=VARCHAR},
- #{ckwxlx,jdbcType=VARCHAR},
- #{cankwxbh,jdbcType=VARCHAR},
- #{cankwxzwtm,jdbcType=VARCHAR},
- #{cankwxywtm,jdbcType=VARCHAR},
- #{zz,jdbcType=VARCHAR},
- #{dyzzxm,jdbcType=VARCHAR},
- #{diyzzdw,jdbcType=VARCHAR},
- #{dyzzdz,jdbcType=VARCHAR},
- #{txzzdz,jdbcType=VARCHAR},
- #{txzzxm,jdbcType=VARCHAR},
- #{txzzdw,jdbcType=VARCHAR},
- #{kanm,jdbcType=VARCHAR},
- #{year,jdbcType=VARCHAR},
- #{juan,jdbcType=VARCHAR},
- #{qi,jdbcType=VARCHAR},
- #{yema,jdbcType=VARCHAR},
- #{zwgjc,jdbcType=VARCHAR},
- #{ywgjc,jdbcType=VARCHAR},
- <!-- #{zhongwzy,jdbcType=CLOB,typeHandler=org.apache.ibatis.type.ClobTypeHandler},
- #{yingwzy,jdbcType=CLOB,typeHandler=org.apache.ibatis.type.ClobTypeHandler}, -->
- #{fundType,jdbcType=VARCHAR},
- #{flh,jdbcType=VARCHAR},
- #{isOpen,jdbcType=VARCHAR},
- <!-- #{ckwxly,jdbcType=VARCHAR}, -->
- #{regTime,jdbcType=TIMESTAMP},
- #{modTime,jdbcType=TIMESTAMP},
- #{memo,jdbcType=VARCHAR},
- #{crtUser,jdbcType=VARCHAR},
- #{updUser,jdbcType=VARCHAR}
- )
- </insert>
主要有三点问题,
1,clob类型的字段比较 要借助函数 dbms_lob.compare() 。
2,clob字段手写insert入库失败(未解决)。
3,借助存储过程成功了(不想用存储过程)。
mybatis 使用oracle merge into 语句踩坑实录的更多相关文章
- ffmpeg 踩坑实录 添加实时水印(二)
一.背景介绍 最近领导要求做一个视频录制的相关项目.其中,需要对视频文件进行添加 实时时间水印.于是,我想到了使用之前的ffmpeg来做. 二.ffmpeg实际操作 首先把需要添加水印的视频文件,上传 ...
- 后端路由项目由 gulp 改为 webpack 的踩坑实录
前言 公司有个后端路由的项目是用 gulp 作为前端自动化构建工具,最近学习了一下 webpack,深感其强大,一狠心将其改成了 webpack 构建,以下是踩坑实录. gulp 先来说说原来的架构. ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
- JasperReport报表导出踩坑实录
写在最前面 翻了翻博客,因为太忙,已经好久没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小De ...
- 『OGG 02』Win7 配置 Oracle GoldenGate Adapter Java 踩坑指南
上一文章 <__Win7 配置OGG(Oracle GoldenGate).docx>定下了 两个目标: 目标1: 给安装的Oracle_11g 创建 两个用户 admin 和 root ...
- HashMap踩坑实录——谁动了我的奶酪
说到HashMap,hashCode 和 equals ,想必绝大多数人都不会陌生,然而你真的了解这它们的机制么?本文将通过一个简单的Demo还原我自己前不久在 HashMap 上导致的线上问题,看看 ...
- (最新)VS2015安装以及卸载过程——踩坑实录
前言 Visual Studio (简称VS)是微软公司旗下最重要的软件集成开发工具产品.是目前最流行的 Windows 平台应用程序开发环境,也是无数人学习编程的入门软件之一.Visual Stud ...
- 使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑详细配置完成】
PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好久都没成功,有些写的不够详细,有些只有写一半,走了不少弯弯绕绕,踩了不少的坑,此文将正确配置成功的步骤 ...
- Oracle merge into 语句进行insert或者update操作,如果存在就update,如果不存在就insert
merge into的形式: MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] ...
随机推荐
- SpringBoot(二)thymeleaf模板的引入
接着上一次的配置 1.在pom文件中添加thymeleaf模板的引入, <dependency> <groupId>org.springframework.boot</g ...
- python day10作业答案
2.def func(*args): sum = 0 for i in args: sum=sum+int(i) return sum a=func(2,3,9,6,8) print(a) 3. a= ...
- Eclipse_设置_01_自动提示
- SpringBoot 添加fastjson
1.先在项目中添加fastjson依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId> ...
- 【Python】多进程2
#练习:测试单进程和多进程执行效率 import multiprocessing import time def m1(x): time.sleep(0.01) return x * x if __n ...
- maven修改本地仓库,远程仓库与中央仓库
什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit. ...
- Mac os fatal error: 'numpy/arrayobject.h' file not found
$ python setup.py install 出错信息如: clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g ...
- html播放音乐
如何在网站网页中添加音乐代码 告诉你多种格式文件的详细使用代码. width_num——指定一个作为宽度的数字: height_num——指定一个作为高度的数字: 1.mp3 ...
- tumblr热度
- document.write中输出html标签用法
输出HTML标签,只需将标签写入双引号: 示例:在网页中输出<p>革命还在继续</p> document.write("<p style='border:1px ...