由于需求涉及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 语句踩坑实录的更多相关文章

  1. ffmpeg 踩坑实录 添加实时水印(二)

    一.背景介绍 最近领导要求做一个视频录制的相关项目.其中,需要对视频文件进行添加 实时时间水印.于是,我想到了使用之前的ffmpeg来做. 二.ffmpeg实际操作 首先把需要添加水印的视频文件,上传 ...

  2. 后端路由项目由 gulp 改为 webpack 的踩坑实录

    前言 公司有个后端路由的项目是用 gulp 作为前端自动化构建工具,最近学习了一下 webpack,深感其强大,一狠心将其改成了 webpack 构建,以下是踩坑实录. gulp 先来说说原来的架构. ...

  3. JAVA实用案例之文件导出(JasperReport踩坑实录)

    写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...

  4. JasperReport报表导出踩坑实录

    写在最前面 翻了翻博客,因为太忙,已经好久没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小De ...

  5. 『OGG 02』Win7 配置 Oracle GoldenGate Adapter Java 踩坑指南

    上一文章 <__Win7 配置OGG(Oracle GoldenGate).docx>定下了 两个目标: 目标1: 给安装的Oracle_11g 创建 两个用户 admin 和 root ...

  6. HashMap踩坑实录——谁动了我的奶酪

    说到HashMap,hashCode 和 equals ,想必绝大多数人都不会陌生,然而你真的了解这它们的机制么?本文将通过一个简单的Demo还原我自己前不久在 HashMap 上导致的线上问题,看看 ...

  7. (最新)VS2015安装以及卸载过程——踩坑实录

    前言 Visual Studio (简称VS)是微软公司旗下最重要的软件集成开发工具产品.是目前最流行的 Windows 平台应用程序开发环境,也是无数人学习编程的入门软件之一.Visual Stud ...

  8. 使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑详细配置完成】

    PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好久都没成功,有些写的不够详细,有些只有写一半,走了不少弯弯绕绕,踩了不少的坑,此文将正确配置成功的步骤 ...

  9. Oracle merge into 语句进行insert或者update操作,如果存在就update,如果不存在就insert

    merge into的形式:    MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] ...

随机推荐

  1. spark:ML和MLlib的区别

    ML和MLlib的区别如下: ML是升级版的MLlib,最新的Spark版本优先支持ML. ML支持DataFrame数据结构和Pipelines,而MLlib仅支持RDD数据结构. ML明确区分了分 ...

  2. ES6 声明变量的6种方法

    ES5 只有两种声明变量的方法:var命令和function命令. ES6除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令.所以,ES6 一共 ...

  3. 路由器DHCP服务及DHCP中继

    实验要求:掌握路由配置DHCP服务配置 拓扑如下: R1enable 进入特权模式config terminal   进入全局模式interface s0/0/0 进入端口ip address 192 ...

  4. 2.20 绕过验证码(add_cookie)

    2.20 绕过验证码(add_cookie) 前言验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级 ...

  5. js--单例设计模式

    通过闭包方法实现: var creatE=(function(){ var obj; return function(){ if(!obj){ } reutrn obj; } })();//自调用 c ...

  6. 创建small表空间size32G报错ORA-01144

    #报错现象 #创建Oracle数据库11g默认标准块大小8K,直接分配32g报错 create tablespace ceshi datafile '+data' size 32g * ERROR a ...

  7. mysql手动设置数据表的自增值

    设置表tablename的自增值从1开始自增值 alter table tablename auto_increment=1;

  8. [LeetCode&Python] Problem 905: Sort Array By Parity

    Given an array A of non-negative integers, return an array consisting of all the even elements of A, ...

  9. Gym101485: NWERC 2015(队内第6次训练)

    A .Assigning Workstations 题意:给定N个人的工作时间和工作时长,我们可以假设有无数台工作机器,如果一台机器超过M时间未使用就会关闭,那么我们怎么安排机器的使用,使得需要开启机 ...

  10. 常用cursor光标说明

    1.cursor语法: cursor : auto | crosshair | default | hand | move | help | wait | text | w-resize |s-res ...