Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号

在使用mybatis进行批量插入时,发现对于使用Oracle的自动增长序列时提示 : 

ORA-02287: 此处不允许序号 的错误,下面的这种使用可以解决问题:

<!-- 批量插入 -->

<insert id="inserts" parameterType="java.util.List">
       insert into PRESON
        select SEQ_PRESON_ID.NEXTVAL,A.* from(
        <foreach collection="list" item="item" index="index"
            separator="UNION">
            SELECT
            #{item.presonName},
            #{item.presonTel},
            #{item.presonEmail},
            #{item.presonAge}
            from dual 
             </foreach>
        ) A
    </insert>

原文地址:https://www.cnblogs.com/zhaoyan001/p/10851996.html

时间: 2024-11-05 12:35:02

Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号的相关文章

mybatis批量插入(Oracle)

配置文件(Oracle): <!-- 批量插入临时表--> <insert id="insertTempPhoneBatch"parameterType="java.util.HashMap" > insert into ce_tempPhone_info(phone) ( <foreach collection="list"item="item" separator="union&qu

oracle mybatis 批量插入遇到的问题

1.这是一个很蛋疼的问题,用<insert>的话会一直报sql语法错误,我这里改用<update>测试OK,用<select>貌似也行 2.批量插入带oracle序列递增遇到的错误:java.sql.SQLSyntaxErrorException: ORA-02287: 此处不允许序号 查资料说有很多限制 Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in thefollowing

解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束

Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置. (3)collection:根据传入的参数值确定. (4)open:表示该语句以什么开始. (5)separator:表示在每次进行迭代之间以什么符号作为分隔 符. (6)close:表示以什么结束. 首先,错误的xml配置文件如下: <insert id="save" da

mybatis批量插入数据到oracle

mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“  错误解决方法 oracle批量插入使用 insert all into table(...) values(...) into table(...) values(...) select * from dual; 语句来解决,但一直报如下错误 ### The error may involve ApplaudDaoImpl.addList-Inline

MyBatis批量插入数据

在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来. 实体类TrainRecord结构如下: public class TrainRecord implements Serializable { private static final long serialVersionUID = -12069604621179

160421、MyBatis批量插入数据

在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来. 实体类TrainRecord结构如下: Java代码   public class TrainRecord implements Serializable { private static final long serialVersionUID = -12069

Mybatis 批量插入数据

--mybatis 批量插入数据 --1.Oracle(需要测试下是否支持MySQL) < insert id ="insertBatch" parameterType="List" > insert into REAL_DATA_HW( M_LINE_NO,M_TIME,HW_NUM, VOL_A,VOL_B,VOL_C ) < foreach collection ="list" item ="item"

MyBatis批量插入数据(MySql)

由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应该要比循环插入的效果更好,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来.供以后查阅和学习. java代码: 注意:这里循环的时候需new 出来新的对象,而不能通过循环改变属性的值就认为这是一个新的对象了,通俗的说就是new ReddemCode()要放在for循环的里面.

mybatis批量插入、批量删除

mybatis 批量插入 int addBatch(@Param("list")List<CustInfo> list); <insert id="addBatch" parameterType="java.util.List"> INSERT INTO CUSTINFO( SERIALID, CUSTID, INVNM, UPDATETIMESTAMP ) <foreach collection="lis