list分批次插入,解决游标过界->Caused by: java.sql.BatchUpdateException: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-01000: 超出打开游标的最大数

 /*数据量过大,分批次插入*/
            //限制数每次插入量
            int dataLimit = 1000;
            //数据总大小
            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: 超出打开游标的最大数

猜你喜欢

转载自www.cnblogs.com/asusdell/p/11937090.html