第一种

< 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语句应该不会写这么长吧?

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

mysqlplus 批量插入_ibatis结合oracle批量插入三种方法的测评相关推荐

  1. mysql 自增长id string_Mysql中获取刚插入的自增长id的三种方法归纳

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的. 但在多线程情况下,就不行了. 下面 ...

  2. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

  3. 一键关闭oracle数据库,关闭Oracle数据库的三种方法

    Oracle数据库关闭应该用什么方法呢?下面就教您三种最常用的Oracle数据库关闭的方法,希望对您学习Oracle数据库关闭方面有所启迪. 一.正常关闭 正常关闭数据库所用的选项是normal,数据 ...

  4. oracle简易版创建数据库,浅析新建Oracle数据库的三种方法

    1.通过运行Oracle Database Configuration Assistant 创建.配置.或删除数据库(也可在命令行下输入dbca): 2.用命令行的方式建立数据库 3.通过运行自定义的 ...

  5. oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    [数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...

  6. mysql 批量数据导入报错_Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-00933: SQL 命令未正确结束 问题:用mybaits 批量插入数据到Oracle 数据库的时候, 报错:ORA-00933 ...

  7. 插入数据库 insert into 语句的三种写法 (附批量插入)

    向原表的字段中插入多条记录的方法:语法:insert into +表名(表中的字段,,)values(字段所对应的记录,,)(字段所对应的记录);INSERT INTO table_name VALU ...

  8. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  9. python提取cad坐标_怎么提取cad中坐标?CAD批量提取坐标点的三种方法

    经常有一些小伙伴问,CAD中怎么批量提取坐标点,今天给大家总结三种方法. 方法一:多段线顺序连接并提取. 1.多段线pl连接点: 2.li命令提取坐标: 3.将点位粘贴至excel,利用数据,分列,最 ...

最新文章

  1. Eclipse安装spring tool suite(4.9.0版本)
  2. 数据结构实验之图论七:驴友计划(最短路Floyd/Dijkstra)
  3. Python开发【第六篇】:模块
  4. “ 我亦想望,如池鱼悠悠 ... “
  5. CSRF攻击原理与防御方法
  6. 5.过滤器作为模板——1D 相关、Matlab互相关实战_1
  7. 用PHP实现多级树型菜单
  8. BZOJ 1007 [HNOI2008]水平可见直线 ——半平面交 凸包
  9. 建筑与计算机技术,计算机技术与建筑设计的不完全认识
  10. 情感极性分析:基于情感词典、k-NN、Bayes、最大熵、SVM的情感极性分析
  11. 【PostgreSQL-9.6.3】分区表
  12. mysql left join_对比MySQL,教你在Pandas中实现SQL常用操作!
  13. matlab统计车流量及车流密度,基于视频的车流量统计——matlab代码
  14. Redfish接口测试
  15. 读取头部姿态数据集300W_LP、AFLW2000、BIWI数据集中的真值
  16. java 链表两数相加
  17. Microsoft Internet Explorer浏览器包含最新版本的内置Adobe Flash Player的解决办法
  18. 如何去掉word标题前面的小黑点
  19. 代理http,代理https,代理sk5,的正向代理和反向代理
  20. 独立院校转设,高考新生何去何从|转设对新生有哪些影响

热门文章

  1. IDEA显示Run Dashboard窗口,Multiple Spring Boot run configurations were detected. Run Dashboard allows to
  2. 大剑无锋之TCP和HTTP的区别【面试推荐】
  3. 用 Flink 取代 Spark Streaming,知乎实时数仓架构演进【推荐】
  4. mybatis集成JNDI【注部署项目后测试代码在jsp或servlet中】
  5. java小编程---最长公共前缀
  6. 【Jenkins】持续集成、持续交付与持续部署
  7. 【MySQL查询】复杂查询:别名、外键join
  8. protocol buffer的高效编码方式
  9. javascript开发后端程序的神器nodejs
  10. 怎么break java8 stream的foreach