Oracle的JDBC在读取数据时报“流已关闭”异常

在从oracle数据库中读取数据的时候有时候会报“流已关闭”的异常,查询官网发现这是oracle的一个bug,原因是表中有long数据类型的字段。

如果oracle数据库表中有long类型的字段,在从结果集中读取数据的时候,如果long类型的字段不在第一位,就会报“流已关闭”异常。

报错内容:

### Cause: java.sql.SQLException: 流已被关闭
; uncategorized SQLException for SQL []; SQL state [99999]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭] with root cause
java.sql.SQLException: 流已被关闭at oracle.jdbc.driver.LongAccessor.getBytesInternal(LongAccessor.java:156)at oracle.jdbc.driver.LongAccessor.getBytes(LongAccessor.java:126)at oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:201)at oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:427)at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1251)at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

解决方法:

1、如果是能修改表结构,可以将long类型的字段用别的类型来代替,如text或者clob。

2、在从结果集中读取数据之前,先判断表结构中是否有long类型的字段,如果有,先从结果集中        取出long类型的字段信息,然后再去操作别的字段信息。

如果数据有多行:

第一行:第一个获取long类型字段,再获取其他类型字段,第二行:第一个获取long类型字段,再获取其他类型字段

这种方式也不行,因为在第二行,获取long类型字段时前面获取的是其他类型的字段

所以我们只能先获取所有行的long类型字段,然后ResultSet.beforeFirst()回到第一行,在获取其他类型字段数据。

最后把两部分数据合并
 

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

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

相关文章

[MySQL--基础]多表查询

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:生活中最大的挑战就是发现自己是谁。然后,坚定不移地成为那个人。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 多表查询 前言多表关系概述&#x1f…

为什么 SQL 不适合图数据库

背景 “为什么你们的图形产品不支持 SQL 或类似 SQL 的查询语言?” 过去,我们的一些客户经常问这个问题,但随着时间的推移,这个问题变得越来越少。 尽管一度被忽视,但图数据库拥有无缝设计并适应其底层数据结构的查询…

leetcode每日一题36

91.解码方法 变形的蜗牛爬塔问题,动态规划 五部曲走起 确定dp数组及下标含义 f(n)代表当前在字符串的第n位时的解码方法数,而因为可以一次性分割(解码)1位或两位,那么在n位时,假设其上一位为a&#xff0c…

四层LVS与七层Nginx负载均衡的区别

一、四层负载均衡与七层负载均衡: (1)四层负载均衡: 四层负载均衡工作在 OSI 七层模型的第四层(传输层),指的是负载均衡设备通过报文中的目标IP地址、端口和负载均衡算法,选择到达的…

Android防破解重签名方案研究

最近发现有人破解我们的应用,于是研究了一下如何在应用被破解以后,让应用退出的简单实现方案。 很多应用可能会选择加固的方式来实现,但是在海外Google Play上是不允许加固的,因此需要其他策略。 应用被破解以后一般会被修改然后…

赛事回顾 | 首届“智航杯“全国无人机智能算法竞赛落幕

11月28日,首届“智航杯”全国无人机智能算法竞赛实物赛在海南省三亚市成功落下帷幕。此次竞赛自2023年4月启动以来,共有来自全国145所高等院校和50多所企事业单位的1253支团队、3655人报名参赛,最终有6支队伍脱颖而出,入围了实物赛…

Elasticsearch:评估 RAG - 指标之旅

作者:Quentin Herreros,Thomas Veasey,Thanos Papaoikonomou 2020年,Meta发表了一篇题为 “知识密集型NLP任务的检索增强生成” 的论文。 本文介绍了一种通过利用外部数据库将语言模型 (LLM) 知识扩展到初始训练数据之外的方法。 …

阶段四:数据分析与机器学习(掌握NumPy和Pandas库,用于数据处理和分析)

Python的NumPy和Pandas库是数据处理和分析的重要工具。NumPy(Numerical Python)提供了高性能的数值计算工具,适用于大规模多维数组和矩阵的运算。Pandas则提供了强大的数据结构和数据分析工具,使得数据处理和分析变得更加便捷。以下是掌握NumPy和Pandas库的一些建议: 熟悉…

11.9每日一题(无穷比无穷型的极限:提出并消去无穷因子、抓大头、拆多项式)

注:1、 为x的绝对值,因为x趋向负无穷,所以为 -x 2、用有理运算法则拆分式子时,注意判断极限是否存在

Python 网络爬虫(二):HTTP 基础知识

《Python入门核心技术》专栏总目录・点这里 文章目录 1. HTTP 协议简述2. HTTP 请求过程3. HTTP 的结构3.1 请求行3.2 请求头3.3 请求体3.4 状态行3.5 响应头3.6 响应体 4. Cookie 状态管理5. HTTP 请求示例6. 总结 大家好,我是水滴~~ 在准备学习网络爬虫之前&…

React都有哪些hooks?

useState:用于在函数组件中使用状态(state)。它返回一个数组,第一个元素是当前状态的值,第二个元素是更新状态的函数。可以通过调用这个函数来更新状态的值。 useEffect:用于在函数组件中执行副作用操作&a…

springboot慢性胃炎管理系统-计算机毕设 附源码 35541

SpringBoot慢性胃炎管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医疗行业当然也不例外。慢性胃炎管理系统是以实际运用为开发背景,运用软件工程…

PLC通过485Modbus转Profinet网关与温控表通讯在发酵罐的应用

前提:在自动化控制系统中,PLC通常需要和各种设备进行数据通讯,其中就包括温控表。而这些设备之间的通讯常常需要通过485Modbus转Profinet网关(XD-MDPN100)来实现。 方案:在一些应用场合中,Profi…

Spring Boot 3 整合 Spring Cache 与 Redis 缓存实战

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

2023/11/30JAVAweb学习(postman,各种参数,统一响应数据,三层架构,分层解耦,bean组件扫描,Bean注入及解决方式)

数组json形式 想切换实现类,只需要只在你需要的类上添加 Component 如果在同一层,可以更改扫描范围,但是不推荐这种方法 注入时存在多个同类型bean解决方式

C++不同平台下的RTTI实现

给定一个含有虚函数的对象的地址&#xff0c;找到对应的类名&#xff0c;不同平台下方法也不同&#xff0c;这是由于RTTI实现并没有统一的标准。 Linux&#xff1a; #include <iostream> #include <typeinfo>class Person { public:virtual void func(){std::cout…

正则表达式(3):入门

正则表达式&#xff08;3&#xff09;&#xff1a;入门 小结 本博文转载自 从这篇文章开始&#xff0c;我们将介绍怎样在Linux中使用”正则表达式”&#xff0c;如果你想要学习怎样在Linux中使用正则表达式&#xff0c;这些文章就是你所需要的。 在认识”正则表达式”之前&am…

ODN光纤链路全程衰减如何计算

在FTTH等宽带光纤接入工程设计中&#xff0c;需根据应用系统的相应波长计算ODN光纤链路的全程衰减&#xff0c;一方面验证是否满足系统的光功率预算指标要求&#xff0c;另一方面作为工程验收的参考指标。 1 计算方法 ODN光纤链路的全程衰减是指从OLT至ONU的光纤链路中&#xf…

LinuxBasicsForHackers笔记 -- 控制文件和目录权限

对于每个文件和目录&#xff0c;我们可以指定文件所有者、特定用户组以及所有其他用户的权限状态。 不同类型的用户 在Linux中&#xff0c;root用户是拥有一切权力的。 root 用户基本上可以在系统上执行任何操作。 系统上的其他用户具有有限的能力和权限&#xff0c;并且几乎…

PHP项目启动记录

PHP项目启动记录 1. 项目整体目录2. bash_profile3. nginx的conf配置4. vim /etc/hosts5. php -v6.修改nginx后重新加载nginx7. npm run watch-app --moduleattendance --platformmobile8. vim ~/.zshrc 1. 项目整体目录 2. bash_profile ~/.bash_profile是Mac系统中的一个配置…