首页

解决通过JDBC访问数据库报"SQLException:ORA-01000:超出打开游标的最大数"的异常问题

标签:oracle异常,01000,SQLException,PreparedStatement,关闭,connect     发布时间:2017-04-25   

一、异常描述

通过JDBC打开数据库连接,通过连接的PreparedStatement提交SQL更新脚本,在大批量提交数据未正常关闭PreparedStatement时会报出“java.sql.SQLException:ORA-01000:超出打开游标最大数”异常,详情如下图所示

解决通过JDBC访问数据库报"SQLException:ORA-01000:超出打开游标的最大数"的异常问题

二、解决步骤

1. 在提交完成后通过try代码段,并加入finally代码中对PreparedStatement对象进行及时关闭,如下所示

try {@b@      pst = conn.prepareStatement(sql);@b@      if (params != null)@b@        for (int i = 0; i < params.length; ++i)@b@          pst.setObject(i + 1, params[i]);@b@@b@@b@      rows = pst.executeUpdate();@b@    } finally {@b@        pst.close(); @b@    }

2. 对于 conn.prepareStatement的conn对象控制好连接数数量(可以通过连接池或公共的单独唯一静态Connection成员变量限制),如下所示

 private static Connection conn = null;@b@  @b@  static{@b@      conn = DBUtil.getConnection();@b@  }