java.sql.SQLException: ORA-01000: 超出打开游标的最大数

实际上,这个错误的原因,主要还是代码问题引起的。

ora-01000: maximum open cursors exceeded.

表示已经达到一个进程打开的最大游标数。

这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭。

一般来说,我们在写Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且使用了这些Statment后,及时关闭。最好是在执行了一次executeQuery、executeUpdate等之后,如果不需要使用结果集(ResultSet)的数据,就马上将Statment关闭。

写于2016年12月21日,在线程中有死循环时,但未进行statement.close导致游标超限。

时间: 2024-10-07 11:06:49

java.sql.SQLException: ORA-01000: 超出打开游标的最大数的相关文章

oracle超出打开游标的最大数的原因和解决方案

oracle超出打开游标的最大数的原因和解决方案 分类: Oracle相关2012-06-05 10:36 6362人阅读 评论(0) 收藏 举报 oracle数据库sqljavasessionsystem 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded) ORA-01000_maximum_open_cursors_exceeded_ 在执行如下代码时,经常会出现ora-01000: maximum open cursors ex

ORA-01000:超出打开游标的最大数(C#)

在做一个windows服务,通过查询文本不断的插入数据的功能.测试一直没有问题,到实际环境中跑起来后程序退出,查看日志发现报的这个错误 ORA-01000:超出打开游标的最大数 经过上网查询发现是由于我在外层用了个cmd查询表,然后用reader进行循环 内层又用了OleDbCommand innercmd = Parameters.pcon.CreateCommand(); 当内层循环次数较多时就会产生这个异常. 解决方法: 在内层循环每次结束的时候dispose一下innercmd

超出打开游标的最大数异常的解决

通过命令:show parameter open_cursor;查看游标数量 alter system set open_cursors=3000

java.sql.SQLException:ORA-24778:无法打开连接

weblogic日志中报:java.sql.SQLException:ORA-24778:无法打开连接.分析功能是有多次对远程表的操作,先查看关于db_link的参数: SQL> show parameter open_links NAME                                 TYPE        VALUE ------------------------------------ ----------- ------- open_links            

java.sql.SQLException: Before start of result set

错误原因: 如API中所述 API: A table of data representing a database result set, which is usually generated by executing a statement that queries the database. A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is p

hibernate java.sql.SQLException

异常:java.sql.SQLException oracle.net.ns.NetException java.net.ConnectException 提示:The Network Adapter could not establish the connection 提示:网络适配器无法建立连接 这个错误一般使因为服务没有打开导致的

java.sql.SQLException: 数字溢出 的解决办法

java.sql.SQLException: 数字溢出 的解决办法 今天碰到了 Java.sql.SQLException: 数字溢出.............的错误. 原因可能有以下两种,一:使用的jdbc驱动与数据库版本不匹配引起的,把版本改为一致的,测试看看: 二:可能是数据库的某个NUMBER类型的字段超出对应实体类属性的接收范围(如数据库字段是11位的手机号,而对应实体类使用Integer接收Phone这个属性,必然溢出), 解决方法:将实体类该属性的数据类改为Long即可.

java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

java数据库连接(JDBC-ODBC方式) 环境:win7 64位和NetBeans IDE 7.1.2  jdk1.7.0_17(64位) 写好程序后运行报错:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配. 注意:win7 64位配置数据源,控制面板->管理工具打开数据源(ODBC)会找不到驱动程序,因为是64位操作系统,但是安装的是32位的office.需要在路 径"C:

javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)

javax.transaction.xa.XAException: java.sql.SQLException:无法创建 XA 控制连接.错误: 未能找到存储过程'master..xp_sqljdbc_xa_init'. 配置JTA  SQL Server XADataSource参考:http://technet.microsoft.com/zh-cn/library/aa342335.aspx 来源:http://blog.csdn.net/gjf8510/article/details/1