第一种

< insert  id =" insert_table "  parameterClass ="java.util.List" >

insert into sj_test( col1 , col2 , col3 ) values

]]>

< iterate  conjunction ="," >

(#test[]. col1 #, # test []. col2 #, # test []. col3 #)

]]>

iterate >

insert >

这种方式是网上最常见的,但是也是问题最大的, 今天把我彻底纠结了,弄了几个小时,最后发现, Oracle不支持 一个insert多个values的方式, 不知道网友们被坑到了没,好像MySQL支持这种 方式          所报的错误:ORA-00933:SQL命令未正确结束

第二种

insert all

into sj_test( col1 , col2 , col3 ) values

(#test[]. col1 #, # test []. col2 #, # test []. col3 #)

select * from dual

这种方式,Oracle支持,其他的数据库就不知道支不支持,但是这种方式有个局限性,就是你插入的表的列数* 你插入的行数 <1000 才有效

如:

我今天需要插入的表有13列字段,总共需要插入246行,在执行的时候,他就报:ORA-24335 cannot support more than 1000 columns

第三种方式

insert  into sj_test( col1 , col2 , col3 ) values   select

col1 , col2 , col3

from (

select

#test[].col1# as col1  , #test []. col2# as col2, # test[].col3#  as col3  from dual

)

这种方式 是先将List里面的值,循环拼接成一个查询虚拟表,然后再通过查询虚拟表,获取每一行的数据 插入到你需要插入的表里面去.    这样的话有个需要注意的地方,就是你拼接的SQL语句的长度有没有超过Oracle的最大长度,不过Oracle的最大长度是64KB,你的SQL语句应该不会写这么长吧?

https://blog.csdn.net/u012184337/article/details/52318768

批量修改

update PRSP_CRM_INVERT_EXPERIENCE

INVERTNAME = #{item.invertname,jdbcType=VARCHAR},

INVERTTIME = #{item.inverttime,jdbcType=VARCHAR},

INVERTDES = #{item.invertdes,jdbcType=VARCHAR}

,UPDATETIMESTAMP=sysdate

where invertid = #{item.invertid,jdbcType=VARCHAR}

批量新增

INSERT INTO

PRSP_CRM_LPCUST

(liid,

custno,

lpname,

lpdes,

delete_flg,

inserttimestamp)

select

PRSP_CRM_LP_ID.nextval,

TT1.*

from (

select

#{item.custno,dbcType=VARCHAR},

#{item.lpname,dbcType=VARCHAR},

#{item.lpdes,dbcType=VARCHAR},

0,

sysdate from dual

) TT1

oracle批量新增字段工具,mybatis 中oracle 批量新增三种方法相关推荐

  1. mysql添加临时索引_mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  2. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

  3. mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  4. 在JavaScript中重复字符串的三种方法

    In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...

  5. 在JavaScript中反转字符串的三种方法

    This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...

  6. c++语言定义排序函数,关于C++中定义比较函数的三种方法小结

    C++编程优与Pascal的原因之一是C++中存在STL(标准模板库).STL存在很多有用的方法. C++模板库中的许多方法都需要相关参数有序,例如Sort().显然,如果你想对一个集合进行排序,你必 ...

  7. java 终止方法_Java中终止线程的三种方法

    Java中终止线程的三种方法 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经 ...

  8. android全局计时_Android中使用定时器的三种方法

    本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第 ...

  9. 【在PowerPoint中插入视频的三种方法】

    为了能更好地帮助大家合理地在PowerPoint课件中插入和播放视频文件, 在PowerPoint中插入视频的三种方法 ,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 ...

最新文章

  1. 验证(verification)和确认(validation)
  2. 砥志研思SVM(四) 序列最小最优化算法(SMO)论文翻译
  3. nDPI流量协议分析(应用软件识别)
  4. stl:空间配置器的标准接口
  5. c++的.o文件的链接顺序
  6. 2019-02-26-GCN资料
  7. 华为性格测试挂的原因是什么?这局怎么破?
  8. ubuntu wps安装
  9. unity3d 绘制小地图_Unity3D —— 小地图制作插件NJG MiniMap
  10. 闲鱼x-sign, x-mini-wua算法签名接口调用
  11. MDK与keilC51共存的方法(成功)MDK与keilC51破解
  12. asp.net前端页面上使用if
  13. 2017中国之旅系列之九:山西平遥古城之旅
  14. 腹有诗书气自华——记环宇通软CEO骆永华 1
  15. AutoCad 新建或打开对话框 经常变为命令提示行的解决办法!
  16. CAD显示全屏控件(网页版)
  17. 超出省略号,el-tooltip悬停展示全部的简单实现
  18. 什么是GPU?跟CPU有什么区别?终于有人讲明白了
  19. Rocky Linux一个可用于生成环境的Linux
  20. (转载)酷炫桌面背景图片,实用命令图片

热门文章

  1. 什么是联表查询?(深度刨析,建议收藏)
  2. 智慧城市特效(建筑颜色渐变、飞线、扫光、扫描、光墙、线路、水、道路线条、锥形标、漫游)three+shader
  3. python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
  4. react router 4
  5. A Simple RESTful API Service With Node.js And Koa2
  6. 使用Chrome快速实现数据的抓取(三)——JQuery
  7. Springmvc Get请求Tomcat、WebLogic中文乱码问题
  8. 机器学习基础-线性代数学习
  9. 【操作系统/OS笔记14】经典同步问题:读者-写者问题、哲学家就餐问题
  10. mysql配置主从数据库_mysql配置主从数据库