由于需求涉及oracle的clob类型字段,在mybatis的mapper xml文件中编写merge into语句时总是失败。

附上错误代码

  1. <insert id="mergeInto">
  2. <selectKey resultType="java.lang.String" order="BEFORE"
  3. keyProperty="id">
  4. SELECT to_char(sysdate,'yyyymmdd')||seq_dr_bcxx.nextval
  5. AS ID FROM dual
  6. </selectKey>
  7. MERGE INTO dr_doc_info doc
  8. USING (SELECT #{cankwxzwtm} cankwxzwtm,
  9. #{zz} zz FROM dual) d
  10. ON (doc.cankwxzwtm = d.cankwxzwtm and doc.zz =
  11. d.zz)
  12. WHEN matched THEN
  13. UPDATE SET doc.MOD_TIME =
  14. #{modTime},doc.UPD_USER = #{updUser}
  15. WHEN not matched THEN
  16. INSERT (
  17. ID,
  18. CKWXLX,
  19. CANKWXBH,
  20. CANKWXZWTM,
  21. CANKWXYWTM,
  22. ZZ,
  23. DYZZXM,
  24. DIYZZDW,
  25. DYZZDZ,
  26. TXZZDZ,
  27. TXZZXM,
  28. TXZZDW,
  29. KANM,
  30. YEAR,
  31. JUAN,
  32. QI,
  33. YEMA,
  34. ZWGJC,
  35. YWGJC,
  36. <!-- zhongwzy, YINGWZY, -->
  37. FUND_TYPE,
  38. FLH,
  39. IS_OPEN,
  40. <!-- CKWXLY, -->
  41. REG_TIME,
  42. MOD_TIME,
  43. MEMO,
  44. CRT_USER,
  45. UPD_USER
  46. )VALUES(
  47. #{id,jdbcType=VARCHAR},
  48. #{ckwxlx,jdbcType=VARCHAR},
  49. #{cankwxbh,jdbcType=VARCHAR},
  50. #{cankwxzwtm,jdbcType=VARCHAR},
  51. #{cankwxywtm,jdbcType=VARCHAR},
  52. #{zz,jdbcType=VARCHAR},
  53.  
  54. #{dyzzxm,jdbcType=VARCHAR},
  55. #{diyzzdw,jdbcType=VARCHAR},
  56. #{dyzzdz,jdbcType=VARCHAR},
  57. #{txzzdz,jdbcType=VARCHAR},
  58. #{txzzxm,jdbcType=VARCHAR},
  59. #{txzzdw,jdbcType=VARCHAR},
  60. #{kanm,jdbcType=VARCHAR},
  61.  
  62. #{year,jdbcType=VARCHAR},
  63. #{juan,jdbcType=VARCHAR},
  64. #{qi,jdbcType=VARCHAR},
  65. #{yema,jdbcType=VARCHAR},
  66. #{zwgjc,jdbcType=VARCHAR},
  67. #{ywgjc,jdbcType=VARCHAR},
  68. <!-- #{zhongwzy,jdbcType=CLOB,typeHandler=org.apache.ibatis.type.ClobTypeHandler},
  69. #{yingwzy,jdbcType=CLOB,typeHandler=org.apache.ibatis.type.ClobTypeHandler}, -->
  70. #{fundType,jdbcType=VARCHAR},
  71. #{flh,jdbcType=VARCHAR},
  72. #{isOpen,jdbcType=VARCHAR},
  73. <!-- #{ckwxly,jdbcType=VARCHAR}, -->
  74. #{regTime,jdbcType=TIMESTAMP},
  75. #{modTime,jdbcType=TIMESTAMP},
  76. #{memo,jdbcType=VARCHAR},
  77. #{crtUser,jdbcType=VARCHAR},
  78. #{updUser,jdbcType=VARCHAR}
  79. )
  80. </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. SpringBoot(二)thymeleaf模板的引入

    接着上一次的配置 1.在pom文件中添加thymeleaf模板的引入, <dependency> <groupId>org.springframework.boot</g ...

  2. 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= ...

  3. Eclipse_设置_01_自动提示

  4. SpringBoot 添加fastjson

    1.先在项目中添加fastjson依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId> ...

  5. 【Python】多进程2

    #练习:测试单进程和多进程执行效率 import multiprocessing import time def m1(x): time.sleep(0.01) return x * x if __n ...

  6. maven修改本地仓库,远程仓库与中央仓库

    什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit. ...

  7. 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 ...

  8. html播放音乐

    如何在网站网页中添加音乐代码 告诉你多种格式文件的详细使用代码.    width_num——指定一个作为宽度的数字:    height_num——指定一个作为高度的数字:     1.mp3    ...

  9. tumblr热度

  10. document.write中输出html标签用法

    输出HTML标签,只需将标签写入双引号: 示例:在网页中输出<p>革命还在继续</p> document.write("<p style='border:1px ...