java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误

文章目录

    • 1、报错信息
    • 2、原因分析
    • 3、解决方案


1、报错信息

java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-01000: 超出打开游标的最大数at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)at com.cw.dubbo.provider.OracleProcessor.select(OracleProcessor.java:40)at com.cw.dubbo.provider.OracleProcessor.select_count(OracleProcessor.java:28)at com.cw.dubbo.provider.LoginServiceImpl.login(LoginServiceImpl.java:25)at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java)at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:76)at com.alibaba.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:52)at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:62)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:65)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:72)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:131)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72)at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:103)at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:96)at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:172)at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:80)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

2、原因分析

这个错误一般出现在利用代码循环执行数据库命令:例如:

  • 第一步:创建一个连接 Connection

  • 第二步:循环创建 PreparedStatement ,并执行查询命令;

  • 第三步:关闭 OracleConnection

在「第二步」循环较小时,代码运行正常,当循环超过一定值时,代码就报如上错误。

错误信息中,「ORA-01000: 超出打开游标的最大数」表示打开的游标数超了,Oracle数据库中默认情况下,打开的最大游标数为300


3、解决方案

第二步循环中的 PreparedStatement,每次执行完都调用 PreparedStatement.close();,释放掉这个资源就可以了。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++primer第十一章 关联容器 11.1使用关联容器 11.2 关联容器概述

关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。虽然关联容器的很多行为与顺序容器相同,但其不同之处反映了关键字的作用关联容器支持高…

codeforces 791A-C语言解题报告

791A题目网址 题目解析 1.输入a,b,每一年a3;b2,问多少年a>b? 2.因为不知道需要循环多少次,使用while循环 代码 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {int a,b,i0;scanf("%d %d",&a,&b);while(a&l…

Redis Mac下安装与使用

目录一、下载安装包二、编译三、服务端与客户端命令1、服务端启动命令2、客户端连接命令3、服务端关闭命令一、下载安装包 官网地址&#xff1a;http://redis.io/download 下载后&#xff0c;解压放到任意目录下。 二、编译 打开终端&#xff0c;切换到 Redis 根目录&#x…

C++primer第十一章 关联容器 11.3关联容器操作 11.4 无序容器

11.3关联容器操作 除了表9.2(第295页)中列出的类型&#xff0c;关联容器还定义了表11.3中列出的类型。这些类型表示容器关键字和值的类型。对于set类型&#xff0c;key_type和value type是一样的&#xff1b;set中保存的值就是关键字。在一个map中&#xff0c;元素是关键字_值…

codeforces 977A-C语言解题报告

977A题目网址 题目解析 1,输入数字n,运算次数k,当n最后一个数字是0时,n/10;当n最后一个数字不是0时,n-1;输出n 举例: 输入: 512 4 输出: 50 2.注意:当n最后一个数字是0时,使用n%100去判断 代码 #include<stdio.h> #include<stdlib.h> #include<string.h>…

SpringBoot 整合Dubbo

文章目录一、工程目录结构二、创建工程项目1、创建接口工程&#xff08;cw-dubbo-api&#xff09;&#xff08;1&#xff09;pom.xml&#xff08;2&#xff09;创建接口类&#xff08;LoginService&#xff09;2、创建服务提供者工程&#xff08;cw-dubbo-provider&#xff09;…

macos实现输入文件输入结束符

在clion软件中&#xff0c;执行cin>>value ,如何手动输入结束符号&#xff1f;&#xff1f;需要在debug环境下&#xff0c;然后&#xff0c;使用command D 实现此功能

2000年考研英语阅读理解文章二

文章详细解析 注意点 1.文章标题选择,查看文章中一直在重复提及的话语: 如:我们没有进化了—>标题:人类进化无路可走 知识点 ----单词 1.offspring n孩子,后代 2.Utopia n乌托邦,空想的完美境界 3.wholly adv完全地 4.comprehension n理解力 5.descendant n后代 6.mate …

Kafka Mac下安装与使用

文章目录一、下载安装二、启动Zookeeper三、启动Kafka四、创建Topic五、查看Topic六、删除Topic七、生产/消费数据八、查看消费组九、查看消费组详情一、下载安装 到 Kafka 官网下载&#xff1a;https://kafka.apache.org/downloads 下载好 tar包 后&#xff0c;执行下面命令…

C++primer第一章 开始

运算符打印endl,这是一个被称为操纵符(manipulator)的特殊值。写入endl 的效果是结束当前行&#xff0c;并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中&#xff0c;而不是仅停留在内存中等待写入流…

codeforces 617A-C语言解题报告

617A题目网址 题目解析 1.输入x,能够通过1,2,3,4,5去到达x,求最小到达x的步数. 举例: 输入: 12 输出: 3 2.注意点: 要最小的步数,所以直接使用最大的5去比较判断 1)当x<5时,只需要1 2)当x>5时,如果x%50(x能整除5),只需要x/5步数,不能整除则需要x/51步数 代码 #inclu…

SpringBoot —— Bean的注入方式

文章目录1、组件注解2、Component Bean3、Import(PlaceHolderClass)快速导入一个组件4、使用Spring提供的FactoryBean注入1、组件注解 注解描述Component组件定义不清晰时候的注解Controller控制器层Service服务层Repository数据层 注&#xff1a;添加注解的类需要与启动类在…

如何保养电池

1&#xff0c;不要在低于0度和高于35度的范围下使用电池&#xff0c;尤其是高温环境下对电脑充电&#xff0c;对电池的破坏是不可逆转的。2&#xff0c;放电过于彻底或者充电过于饱和&#xff0c;也会对电池的容量造成损耗。BMS 调整电池的充放电3&#xff0c;电脑长期不用&…

codeforces 116A-C语言解题报告

116A题目网址 题目解析 1.输入n(n个循环),每一个循环-a,b;第一个循环只有b;最后一个循环只有-a;求其中在车上的最大人数? 举例: 输入: 4 0 3 2 5 4 2 4 0 输出: 6 2.注意点:因为使用count计数时,count一直在改变,所以再加入一个max变量去记录count中出现的最大数. 代码 #…

SpringBoot —— @ComponentScan注解

文章目录一、作用二、注解属性说明三、使用方式一、作用 主要是从定义的扫描路径中&#xff0c;找出标识了需要装配的类自动装配到Spring的bean容器中。 简单的说就是 ComponentScan告诉Spring从哪里找到bean&#xff0c;一旦指定了&#xff0c;Spring就会将指定的包及其下级…

硬盘 相关知识

磁盘存储数据于轨道上&#xff0c;为了防止数据不被干扰&#xff0c;轨道之间是存在间隙的。如果间隙越小存储的数据越多&#xff0c;但是对数据的写入和读取所使用的磁头是不一样的&#xff0c;写入的磁头比较宽&#xff0c;读取的磁头比较窄。叠瓦式硬盘&#xff0c;将轨道和…

Java 序列化反序列化框架比较

文章目录一、简介二、序列化框架1、JDK2、XML序列化3、JSON序列化4、Hessian5、Avro序列化6、Kyro序列化7、Protostuff三、序列化框架对比测试1、对象准备2、JDK方式3、FastJson方式4、Hessian方式5、Protostuff方式6、测试代码四、总结五、序列化应用场景六、注意事项一、简介…

C++primer 第 2 章 变量和基本类型

2.1 基本内置类型 算术类型&#xff08;arithmetictype&#xff09;和空类型&#xff08;void&#xff09;在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值&#xff0c;仅用于一些特殊的场合&#xff0c;例如最常见的是&#xff0…

codeforces 58A-C语言解题报告

58A题目网址 题目解析 1.输入字符串,问如果删去其中的一些自发,能否得到hello,如果能就输出YES,否则输出NO 举例: 输入: ahhellllloou 输出: YES 2.注意点: 因为C语言没有java中的匹配字符串,则新建立一个 word[6]“hello”; 在循环中使用word去与s匹配,当匹配到了就 count…

ClickHouse 客户端命令

文章目录一、简介二、常用命令1、连接命令2、SQL语法&#xff08;1&#xff09;查看数据库列表&#xff08;2&#xff09;查看当前使用的数据库&#xff08;3&#xff09;查看数据库中表列表&#xff08;4&#xff09;创建数据库&#xff08;5&#xff09;创建表&#xff08;6&…