list分批次插入,解决游标过界->Caused by: java.sql.BatchUpdateException: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-01000: 超出打开游标的最大数
/*数据量过大,分批次插入*/ //限制数每次插入量 int dataLimit = 100; //数据总大小 int size = list.size(); //是否有必要分批 if (size <= dataLimit) { //插入数据到数据库 xxxxRepository.saveLists(list); } else { //分批数 int part; if (size % dataLimit != 0) { part = size / dataLimit + 1; } else { part = size / dataLimit; } for (int i = 0; i < part; i++) { List<Map<String, Object>> maps; //判断是否是最后一次 if (i != part - 1) { maps = list.subList(i * dataLimit, (i + 1) * dataLimit); } else { maps = list.subList(i * dataLimit, list.size()); } //插入数据到数据库 xxxxRepository.saveLists(maps); } }
Caused by: java.sql.BatchUpdateException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-01000: 超出打开游标的最大数