Open yu894890489 opened 5 years ago
使用了最新的包发现有提供oracle的批量插入,特地debug试了下,将自己写的和源码里的生成的批量插入sql互相替换下,结果自己的写的可以执行,源码的同样报ORA-00933 sql未正确结束
有人遇到过这种问题吗 跟到源码里也没有发现什么不一样的,可就是自己写的不行
所以是自己的不行, 还是集成的不行。
生成的SQL执行语句是啥, 贴出来看看
我也遇到了同样的问题, 我用的还是比较老的版本,3.3.6的mapper,2.0.1的springboot,3.4.6的mybatis 最后发现是我仿照的InsertListMapper写的OracleInsertListMapper中有一个注解需要去除掉,@Options,,自己写的SpecialOracleProvider中拼接出来sql没错误应该就可以了。 希望能够给后面的人一些帮助
这个思路可以毙掉了,今天用大量数据测试,1000条 Cause: java.sql.SQLException: ORA-24335: 无法支持 1000 列以上 注意这个错误是oracle的错误,另外实际测试发现,并不是999条就可以了,这个报错说的是oracle的参数不允许超过1000个,所以,这个insert all批量插入的思路没有实际意义了
使用 insert into table select columns from dual的格式,暂时没发现问题,性能待测试对比
根据ora的批量插入
insert all into a (c1,c2) values(1,2) into a (c1,c2) values(3,4) select 1 from dual
的方式加了一个oracle mapper接口,并重写了一个Provider,生成的sql放入正常的xml能批量插入成功,但调用重写的方法就不行,会报ORA-00933 sql未正确结束,这个是什么原因