2020年8月18日星期二

Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-00933: SQL 命令未正确结束

问题:用mybaits 批量插入数据到Oracle 数据库的时候,

报错:ORA-00933: SQL 命令未正确结束 / ORA-00933: SQL command not properly ended ;意思就是 语法错误 

 

原因:

oracle 批量插入与mysql 的批量插入的方式是不同的,

insert into tablename()values(),(),(); ---这个是mysql 的批量插入形式

insert all into tablename() values() into tablename() values() -------这个是Oracle批量插入形式 

 

下面是 Mybaits:oracle数据库批量插入数据的样式:

//方式1:<insert id="insertclobtest2" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">  INSERT ALL  <foreach collection="list" item="item" index="index">   INTO ainsertclob (id, blobtest) VALUES   (#{item.id}, #{item.blobtest})  </foreach>  select 1 from dual </insert>//方式2: <insert id="insertclobtest3" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">  INSERT INTO ainsertclob (id, blobtest)  <foreach collection="list" item="item" index="index" separator="union all">   SELECT #{item.id} ,#{item.blobtest} from dual  </foreach> </insert>// 方式3:<insert id="addBatch" parameterType="java.util.List">  BEGIN  <foreach collection="list" item="item" index="index" separator="">   insert into blacklist   (id, userid, deviceid, createdate, updatedate, "LEVEL")   VALUES   ( USER_INFO_SEQ.NEXTVAL,#{item.userId,jdbcType=INTEGER},#{item.deviceId,jdbcType=VARCHAR},   #{item.createDate,jdbcType=DATE},sysdate, #{item.level,jdbcType=INTEGER} );  </foreach>  COMMIT;  END; </insert> 

 

下面是Mybaits: mysql 数据库批量插入数据的例子:

 <insert id="insertclobtest1" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">  INSERT INTO ainsertclob (id, blobtest) VALUES  <foreach collection="list" item="item" separator=",">   (#{item.id}, #{item.blobtest})  </foreach> </insert>

 

 

Mybatis,oracle,ORA-00933: SQL 命令未正确结束

原因是:批量插入时,如果没有主键,一定要显式指定useGeneratedKeys为false,否则会报: SQL 命令未正确结束

 

<insert id="insert_" useGeneratedKeys="false">  </insert>

 

Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA米谷跨国采购网入驻亚马逊-新手卖家必须get到的关键点官宣:这6大城市将成为官方认证的出口商品采购市场!太狠了!一卖家"恶搞"超60多位亚马逊卖家Listing,多个类目"中招"声音|疫情之后,有哪些巨大的商业机会?泡温泉需要带泳衣吗?第一次泡温泉需要带什么装备吗?户外运动该如何保护好相机?

没有评论:

发表评论