报错环境springboot+mybatis,mybatis批量插入
找到的原因是传输的sql语句过长
报错语句如下:
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。
### The error may involve com.xinshai.dao.ResultPushMsgDao.insertBatchHistory-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO pushHistory (id,openId,patientId,tid,first,keyword1,keyword2,keyword3,keyword4, keyword5,remark,createTime,flag,type,success) select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all select ?,?,?,?,?,?,?, ?,?,?,?,getDate(),?,?,? union all ()
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。
; uncategorized SQLException; SQL state [S0001]; error code [8003]; 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89) ~[spring-jdbc-5.0.5.RELEASE.jar:5.0.5.RELEASE]at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-5.0.5.RELEASE.jar:5.0.5.RELEASE]at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-5.0.5.RELEASE.jar:5.0.5.RELEASE]at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) ~[mybatis-spring-1.3.1.jar:1.3.1]
解决方法请查看:
http://yayihouse.com/yayishuwu/chapter/2134