点评 ibatis+oracle 批量插入的三种方法.
来源:互联网 发布:买淘宝店 编辑:程序博客网 时间:2024/05/22 09:27
< insert id =" insert_table " parameterClass ="java.util.List" >
<![CDATA[
insert into sj_test( col1 , col2 , col3 ) values
]]>
< iterate conjunction ="," >
<![CDATA[
(#test[]. col1 #, # test []. col2 #, # test []. col3 #)
]]>
</ iterate >
</ insert >
这种方式是网上最常见的,但是也是问题最大的, 今天把我彻底纠结了,弄了几个小时,最后发现, Oracle不支持 一个insert多个values的方式, 不知道网友们被坑到了没,好像MySQL支持这种 方式 所报的错误:ORA-00933:SQL命令未正确结束
第二种
<insert id="insert_table " parameterClass="java.util.List">
insert all
<iterate conjunction="">
into sj_test( col1 , col2 , col3 ) values
(#test[]. col1 #, # test []. col2 #, # test []. col3 #)</iterate>
<!--必须要加上 -->
select * from dual
</insert>
这种方式,Oracle支持,其他的数据库就不知道支不支持,但是这种方式有个局限性,就是你插入的表的列数* 你插入的行数 <1000 才有效
如:
我今天需要插入的表有13列字段,总共需要插入246行,在执行的时候,他就报:ORA-24335 cannot support more than 1000 columns
第三种方式
<insert id="insert_table" parameterClass="java.util.List">
insert into sj_test( col1 , col2 , col3 ) values select
col1 , col2 , col3
from (
<iterate conjunction=" union all ">
select
#test[].col1# ascol1 , #test []. col2# as col2, # test[].col3# as col3 from dual
</iterate>
)
</insert>
这种方式 是先将List里面的值,循环拼接成一个查询虚拟表,然后再通过查询虚拟表,获取每一行的数据 插入到你需要插入的表里面去. 这样的话有个需要注意的地方,就是你拼接的SQL语句的长度有没有超过Oracle的最大长度,不过Oracle的最大长度是64KB,你的SQL语句应该不会写这么长吧?
- 点评 ibatis+oracle 批量插入的三种方法.
- 点评 ibatis+oracle 批量插入的三种方法
- ibatis 的批量插入 批量更新数据
- ibatis 搭配oracle做批量插入小结
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- 三种JDBC批量插入编程方法的比较
- oracle批量插入数据的方法1
- Mybatis Oracle 批量插入数据的方法
- OracleBulkCopy 批量插入oracle数据库的方法
- ibatis 对数据批量插入方法
- mssql批量插入三种方法
- ibatis对oracle数据库的批量更新和批量插入的操作
- VS 2010 C++中调试DLL
- 在asp.net web 程序中使用Sqlite数据库
- Zoj 1006 Do the Untwist
- 使用Core Data时如何看到所执行的SQL语句?
- Wax 将Lua带人iPhone开发
- 点评 ibatis+oracle 批量插入的三种方法.
- 广东标准102规约报文
- TCP/IP详解--IP路由选择详解 ping命令的过程
- matlab plot
- 分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计
- Delphi TNotifyEvent是Delphi中基本通知事件的类型
- ios--OpenCV--AR可视化
- vs2008静态编译pcre正则库
- Qt网络编程之实例一GET方式 .