oracle批量新增字段工具,mybatis 中oracle 批量新增三种方法
第一种
< 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 批量新增三种方法相关推荐
- mysql添加临时索引_mysql 中添加索引的三种方法
在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...
- centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...
- mysql 中添加索引的三种方法
在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...
- 在JavaScript中重复字符串的三种方法
In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...
- 在JavaScript中反转字符串的三种方法
This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...
- c++语言定义排序函数,关于C++中定义比较函数的三种方法小结
C++编程优与Pascal的原因之一是C++中存在STL(标准模板库).STL存在很多有用的方法. C++模板库中的许多方法都需要相关参数有序,例如Sort().显然,如果你想对一个集合进行排序,你必 ...
- java 终止方法_Java中终止线程的三种方法
Java中终止线程的三种方法 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经 ...
- android全局计时_Android中使用定时器的三种方法
本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第 ...
- 【在PowerPoint中插入视频的三种方法】
为了能更好地帮助大家合理地在PowerPoint课件中插入和播放视频文件, 在PowerPoint中插入视频的三种方法 ,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 ...
最新文章
- 验证(verification)和确认(validation)
- 砥志研思SVM(四) 序列最小最优化算法(SMO)论文翻译
- nDPI流量协议分析(应用软件识别)
- stl:空间配置器的标准接口
- c++的.o文件的链接顺序
- 2019-02-26-GCN资料
- 华为性格测试挂的原因是什么?这局怎么破?
- ubuntu wps安装
- unity3d 绘制小地图_Unity3D —— 小地图制作插件NJG MiniMap
- 闲鱼x-sign, x-mini-wua算法签名接口调用
- MDK与keilC51共存的方法(成功)MDK与keilC51破解
- asp.net前端页面上使用if
- 2017中国之旅系列之九:山西平遥古城之旅
- 腹有诗书气自华——记环宇通软CEO骆永华 1
- AutoCad 新建或打开对话框 经常变为命令提示行的解决办法!
- CAD显示全屏控件(网页版)
- 超出省略号,el-tooltip悬停展示全部的简单实现
- 什么是GPU?跟CPU有什么区别?终于有人讲明白了
- Rocky Linux一个可用于生成环境的Linux
- (转载)酷炫桌面背景图片,实用命令图片
热门文章
- 什么是联表查询?(深度刨析,建议收藏)
- 智慧城市特效(建筑颜色渐变、飞线、扫光、扫描、光墙、线路、水、道路线条、锥形标、漫游)three+shader
- python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
- react router 4
- A Simple RESTful API Service With Node.js And Koa2
- 使用Chrome快速实现数据的抓取(三)——JQuery
- Springmvc Get请求Tomcat、WebLogic中文乱码问题
- 机器学习基础-线性代数学习
- 【操作系统/OS笔记14】经典同步问题:读者-写者问题、哲学家就餐问题
- mysql配置主从数据库_mysql配置主从数据库