MyBatis 插入List数据(ORACLE)。

近期有个需求,需要读取CSV文件,然后将数据插入到数据库(ORACLE)中。

个人的思路是将CSV文件读取出来保存成List,之后使用MyBatis的foreach来进行数据的插入。

但是却出现了 ORA-00933:Oracle 命令未正确结束的异常。

我出现这个错误的原因是因为使用了MySQL的批量插入语句,改成Oracle的问题就解决了。

<insert id="addPCLoginLogByList" parameterType="java.util.List">
	INSERT INTO T_PC_LOGIN_LOG
		(
			ID,
  			LOGIN_IP,
  			LOGIN_USERNAME,
  			LOGIN_TIME,
			ATTRIBUTE1,
			ATTRIBUTE2,
			ATTRIBUTE3,
			ATTRIBUTE4,
			ATTRIBUTE5,
			ATTRIBUTE6,
			ATTRIBUTE7,
			LOGIN_SYSTEM
		)
		SELECT SEQ_PC_LOGIN_LOG.NEXTVAL ID,T.* FROM(
		    <foreach collection="list" item="item" index="index" separator="UNION ALL">
			SELECT 
	        	    #{item.loginIp} LOGIN_IP,
	        	    #{item.loginUsername} LOGIN_USERNAME,
	        	    to_date(#{item.loginTime},'YYYY-MM-DD HH24:MI:SS') LOGIN_TIME,
	        	    #{item.attribute1,jdbcType=VARCHAR} ATTRIBUTE1,
	        	    #{item.attribute2,jdbcType=VARCHAR} ATTRIBUTE2,
	        	    #{item.attribute3,jdbcType=VARCHAR} ATTRIBUTE3,
	        	    #{item.attribute4,jdbcType=VARCHAR} ATTRIBUTE4,
	        	    #{item.attribute5,jdbcType=VARCHAR} ATTRIBUTE5,
	        	    #{item.attribute6,jdbcType=VARCHAR} ATTRIBUTE6,
	        	    #{item.attribute7,jdbcType=VARCHAR} ATTRIBUTE7,
	        	    #{item.loginSystem} LOGIN_SYSTEM
	        	FROM DUAL
		    </foreach>
		) T
</insert>




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值