首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java.sql.SQLRecoverableException:从oracle数据库接收blob字段时关闭的连接

java.sql.SQLRecoverableException是Java中的一个异常类,表示在与数据库进行交互时发生了可恢复的错误。具体来说,这个异常表示在从Oracle数据库接收blob字段时,连接被关闭了。

在Java中,java.sql包提供了与数据库进行交互的API。SQLRecoverableException是SQLException的子类,它表示在数据库操作过程中发生了可恢复的错误。可恢复的错误意味着可以通过一些操作或者重试来解决这个问题。

对于这个异常,可能的原因是在接收blob字段的过程中,数据库连接被意外关闭了。这可能是由于网络问题、数据库服务器故障、连接超时等原因导致的。

要解决这个问题,可以尝试以下几个步骤:

  1. 检查网络连接:确保网络连接正常,没有断开或者不稳定的情况。
  2. 检查数据库服务器状态:确认数据库服务器正常运行,并且没有出现故障或者异常。
  3. 增加连接超时时间:如果连接超时导致连接关闭,可以尝试增加连接超时时间,以确保在接收blob字段时连接不会被关闭。
  4. 检查数据库连接池配置:如果使用连接池管理数据库连接,确保连接池的配置正确,并且连接池没有达到最大连接数限制。
  5. 检查代码逻辑:检查代码中是否有关闭数据库连接的操作,确保在接收blob字段时不会意外关闭连接。

总之,java.sql.SQLRecoverableException表示在从Oracle数据库接收blob字段时关闭了连接。解决这个问题需要检查网络连接、数据库服务器状态、连接超时时间、数据库连接池配置和代码逻辑等方面,以确保连接不会在接收blob字段时被关闭。

腾讯云提供了多种云计算相关产品,包括数据库、服务器、存储等。具体针对这个问题,可以参考腾讯云的数据库产品,如云数据库 TencentDB for MySQL、云数据库 TencentDB for PostgreSQL等。这些产品提供了稳定可靠的数据库服务,可以满足各种应用场景的需求。您可以访问腾讯云官网了解更多关于这些产品的信息和介绍。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DataX 报错:java.sql.SQLRecoverableException: IO 错误: Connection reset

在使用 DataX 抽取 Oracle数据,遇到了如下报错: 2021-04-19 14:04:47.207 [0-0-0-reader] ERROR ReaderRunner - Reader...,网上查了一下,说是当数据库连接池中连接被创建而长时间不使用情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作仍然使用是无效数据库连接,这样,就导致客户端程序报“java.sql.SQLException...: Io 异常: Connection reset” 或 “java.sql.SQLException 关闭连接” 异常。...网上跟这个问题相关解决思路是 Connection Reset 原因有可能有以下几种原因: 配置数据连接连接数不够用; 数据库连接池中连接,长时间不用,数据库主动断开连接,而客户端不知道,...首先解释下另一种出现这个问题原因: 连接 ORACLE 服务器,客户端要生成随机密钥用于客户端认证,linux 下 JDK 默认使用 /dev/random,random 采用阻塞方式生成随机数,生成速度很慢

2.7K40

报错解决:java.sql.SQLRecoverableException:IO 错误:Got minus one from a read call

应用报错: java.sql.SQLRecoverableException:IO 错误:Got minus one from a read call 据开发人员描述:起多个服务,最后服务时候报这个错...,无论最后服务是啥,提供报错日志 是java.sql.SQLRecoverableException:IO 错误:Got minus one from a read call 原因:...当应用连接数据库,是通过连接机制进行连接数据库参数:max-session决定连接 大小,而应用同样也有一个参数,这个参数表示它连接数据库连接池所占用最少资源。...例如:总共有10个应用需要连接数据库,如果每个应用连接数据库最小连接数为10,那么10个应用总共会 有100个连接,这样就要求数据库连接max-session必须大于100,否则就会报“ Got...修改processes和sessions值必须重启oracle服务器才能生效   ORACLE连接数(sessions)与其参数文件中进程数(process)有关,它们关系如下:   sessions

2.5K40

Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOBCLOB类型数据

概述 如何获取本地数据连接 示例DBCP数据源中获取Oracle本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型数据 以块数据方式读取LOB数据 以流数据方式读取...,包括获取本地数据连接进行数据库相关操作和如何操作BLOB、CLBO这些LOB数据。...---- 值得注意是:在不同数据库中,大对象对应字段类型是不尽相同,如 DB2 对应 BLOB/CLOB,MySql 对应 BLOB/LONGTEXT,SqlServer 对应 IMAGE/TEXT...---- 如何获取本地数据连接 我们知道,在 Web 应用服务器或 Spring 中配置数据源数据源中返回数据连接对象是本地 JDBC 对象(如 DB2Connection、OracleConnection...)代理类,这是因为数据源需要改变数据连接原有的行为以便施加额外控制,比如在调用Connection#close()方法,将数据连接返还到连接池中而非将其关闭

1.5K40

JDBC第二篇【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】(修订版)

同理blob也有这4类 ---- 下面用JDBC连接MySQL数据库去操作大文本数据和二进制数据 /* *用JDBC操作MySQL数据库去操作大文本数据 * *setCharacterStream(...下面用JDBC连接Oracle数据库去操作大文本数据和二进制数据 //使用JDBC连接Oracle数据库操作二进制数据 /* * 对于Oracle数据库和Mysql数据库是有所不同。...* 1.Oracle定义了BLOB字段,但是这个字段不是真正地存储二进制数据 * 2.向这个字段存一个BLOB指针,获取到OracleBLOB对象,把二进制数据放到这个指针里面,指针指向BLOB字段...对象--当成是OracleBlob,不是JDBC,所以要强转[导oracle.sql.BLOB包] BLOB blob = (BLOB) resultSet.getBlob...Oracle数据库操作CLOB数据,我就不再重复了,操作跟BLOB几乎相同 ---- 4.获取数据库自动主键列 为什么要获取数据库自动主键列数据?

1.1K20

JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】

同理blob也有这4类 ---- 下面用JDBC连接MySQL数据库去操作大文本数据和二进制数据 /* *用JDBC操作MySQL数据库去操作大文本数据 * *setCharacterStream(int...下面用JDBC连接Oracle数据库去操作大文本数据和二进制数据 //使用JDBC连接Oracle数据库操作二进制数据 /* * 对于Oracle数据库和Mysql数据库是有所不同。...* 1.Oracle定义了BLOB字段,但是这个字段不是真正地存储二进制数据 * 2.向这个字段存一个BLOB指针,获取到OracleBLOB对象,把二进制数据放到这个指针里面,指针指向BLOB字段...对象--当成是OracleBlob,不是JDBC,所以要强转[导oracle.sql.BLOB包] BLOB blob = (BLOB) resultSet.getBlob...Oracle数据库操作CLOB数据,我就不再重复了,操作跟BLOB几乎相同 ---- 4.获取数据库自动主键列 为什么要获取数据库自动主键列数据?

2K30

Java向Oracle数据库表中插入CLOB、BLOB字段

在需要存储较长字符串到数据库往往需要使用一些特殊类型字段,在Oracle中即blob和clob字段,一般而言:Clob字段存储字符信息,比如较长文字、评论,Blob字段存储字节信息,比如图像base64...插入时带Blob和Clob字段 情景再现: 数据源接收数据,解析完成后产生SQL语句并批量插入数据表,注意,原记录中含有若干个Blob字段(图片编码)和若干个Clob字段(记录信息),其余字段均为一般类型...类型 组装SQL语句Blob需要人为empty_blob(),置空为Clob需要人为置空为empty_clob() 每次插入都需要对特殊字段进行处理,故无法使用batch操作 特殊字段处理(第二次插入....getBytes()); // 依次读取流字节,并输出到已定义好数据库字段中....,请在下方留言,我会第一间回复

6.3K10

聊聊jdbc socketTimeout设置

statement执行超时时间,即driver等待statement执行完成,接收到数据超时时间(注意statementtimeout不是整个查询timeout,只是statement执行完成并拉取...由于tomcat jdbc pool是springboot默认使用数据库连接池,这里就讲述一下如何在tomcat jdbc pool下设置。...oraclejdbc默认fetchSize为10,也就是每个fetch,如果超过指定时间没接收到数据,则抛出timeout异常。...小结 jdbcsocketTimeout值设置要非常小心,不同数据库jdbc driver设置不一样,特别是使用不同连接池的话,设置也可能不尽相同。...报504 Gateway Timeout doc oracle.jdbc.ReadTimeout 深入理解JDBC超时设置 在Spring中基于JDBC进行数据访问如何控制超时 BugFix-HttpURLConnection

8.9K22

18 JDBC 数据库编程

对象序列化 序列化用于将某个对象以及它状态写到文件中,它保证了被写入对象之间关系,当需要这个对象,可以完整地文件重新构造出来,并保持原来状态。...数据库安装与配置 目前 Oracle 提供了多个 MySQL 版本,其中社区版 MySQL Community Edition 是免费,社区版本比较适合中小企业数据库。...static Connection getConnection(String url):尝试通过一个URL建立数据库连接,调用此方法,DriverManager会试图已注册驱动中选择恰当驱动来建立连接...close():关闭数据库连接,在使用完连接后必须关闭,否则连接会保持一段比较长时间,直到超时。 isClosed():判断连接是否已经关闭。...ResultSet提供了检索不同类型字段方法,最常用方法介绍如下: close():关闭结果集对象。 isClosed():判断结果集对象是否已经关闭

1.1K30

MySQL数据库面试题和答案(一)

-用于临时高速储存。 他们一些特点是: -它们不允许BLOB或文本字段。 -只能使用=、、= >、=<等比较运算符。...Mysql_fetch_object作为对象返回数据库结果,而mysql_fetch_array作为数组返回结果。这将允许通过字段名访问数据。...首先: -打开与数据库连接。 -可以关闭数据库连接。 -每次载入页面打开页面。 永久链接: -打开与数据库持久连接。 -无法关闭数据库连接。 -页面不需要在每次加载打开。...mysqlconnect()打开通往数据库连接,而mysqlpconnect()打开通往数据库持久连接。这意味着每次加载该页,mysql_pconnect()都不会打开数据库。...不能使用Mysql_close()来关闭持久连接。虽然可以使用它来关闭mysql_connect()。 21、什么是MySQL数据字典?如何确定数据字典位置?

7.5K31

Go 语言使用 GORM 对象关系映射框架兼容多种数据库

一、GORM 数据模型映射定义多数据库兼容说明 在定义 GORM 数据模型,需要确保定义数据模型能够在不同数据库系统之间正确地映射和转换,包括数据类型、表名和字段名等方面。...在多数据库环境下使用 GORM 操作数据库,需要特别注意以下几点: 数据库连接配置:根据目标数据库类型和参数,配置合适数据库连接信息。...使用 GORM 自动迁移表结构,GORM 会自动使用双引号 "" 或反引号 `` 包裹标识符用于明确指定标识符大小写, 所以为了提高多数据库兼容性,在显式指定表名、字段需要注意标识符大小写...通过模型结构体指定表名和字段名 在使用 GORM 操作数据库通常都会定义对应表结构模型结构体,在 GORM 方法中应该尽可能去使用模型结构体和结构体中字段。...通过以上操作,可以确保在使用 GORM 操作数据库能够兼容多种数据库,提高应用程序灵活性和可移植性。 在处理更复杂 SQL 数据库兼容性,以上 3 种方式可以相互结合使用。

29810

14 . Python3之MysSQL

(表规范化程度越高,表与表之间关系就越多;查询可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。...如果经常需要进行这个操作连接查询会浪费很多时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系名称。这样就不用每次都进行连接操作了。)...NULL,可以设置字段属性为NOT NULL,在操作数据如果输入该字段数据为NULL,就会报错....OperationalError 指非用户控制,而是操作数据库发生错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生错误。...例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 必须是DatabaseError子类。

1.7K50

executeupdate mysql_executeupdate()

mysql 使用带有预准备语句Java查询,是否有一种方法可以数据库查询中检索自动生成键。 例如,我知道AutoGeneratedKeys可以按以下方式工作。...数据库DATE类型字段时报错:报错 @JFinal 你好,想跟你请教个问题: Jfinal通过Druid操作Oracle数据库,更新日期类型(DATE类型)字段失败以下是代码 Test test…...kun坤 2020-06-20 13:28:20 1 浏览量 回答数 1 问题 更新ORACLE数据库DATE类型字段时报错?...12 10:31:34 0 浏览量 回答数 1 问题 更新ORACLE数据库DATE类型字段时报错 配置报错 @JFinal 你好,想跟你请教个问题: Jfinal通过Druid操作Oracle...,但有时候会报出连接已经关闭,无法继续操作异常。

1.1K20

Oracle 20c:使用 JDBC 异步访问数据库

使用异步数据库访问前置条件: 使用 JDBC Thin Driver 建立连接 使用 JDK11 和 ojdbc11.jar Oracle 20c 或更高版本 构建异步应用程序步骤与使用标准方法构建应用程序步骤相同...由 clone 方法返回 OracleRow 在映射函数范围之外仍然有效,并且即使关闭数据库连接后仍保留其数据。 行映射函数必须返回非 null 值或引发未经检查异常。...,该订阅者将接收到终端信号。...Subscriber 类型通知订阅者接收针对数据库写操作结果。每次异步写操作完成,Subscriber 类型都会收到一个 onNext 信号,该信号具有该操作写入字节数或字符数。.../** * 异步关闭连接 * @param connection * @return 当连接关闭发出终端信号发布服务器 * @throws SQLException

1.3K20

比较全面的MySQL优化参考

它和官方ORACLE MySQL版本基本完全兼容,并且性能大约有20%以上提升,因此我优先推荐它,我自己也2008年一直以它为主。...这三种设置值导致数据库性能受到影响程度分别是:高、中、低,也就是第一个会另数据库最慢,最后一个则相反; 5、设置innodb_file_per_table = 1,使用独立表空间,我实在是想不出来用共享表空间有什么好处了...此外,字段属性尽量都加上NOT NULL约束,可一定程度提高性能; 3、尽可能不使用TEXT/BLOB类型,确实需要的话,建议拆分到子表中,不要和主表放在一起,避免SELECT * 时候读性能太差。...4、读取数据,只选取所需要列,不要每次都SELECT *,避免产生严重随机读问题,尤其是读到一些TEXT/BLOB列; 5、对一个VARCHAR(N)列创建索引,通常取其50%(甚至更小)左右长度创建前缀索引就足以满足...80%以上查询需求了,没必要创建整列全长度索引; 6、通常情况下,子查询性能比较差,建议改造成JOIN写法; 7、多表联接查询,关联字段类型尽量一致,并且都要有索引; 8、多表连接查询

1K40

oracle转postgreSQL修改点

2019年开始,就有一个很火热的话题:“去O化”。O就是oracle,也就是将oracle替换成别的数据库。为什么要去O?...鉴于以上种种原因,很多企业都在更换数据库,但是如果新数据库语法和oracle差别很大,那工作量会特别大,权衡之下,postgreSQL是个不错选择。...: 主外键字段类型问题:A表主键在B表做外键,这个字段在两张表类型一定要一致,否则连接查询会报错。...10、数字类型字段模糊查询问题: 非String类型字段要进行模糊查询,需要先将数据库字段类型转成varchar,如下: and cast(user_phone as varchar) LIKE ?...) from user order by upper(user_id) 14、blob类型问题: oracle中用blob类型可以存储文件,在java中也用blob类型对应。

1.6K41

一文彻底搞懂贾琏欲执事(JDBC)

类型字段 6.1、BLOB类型简介 6.2、插入BLOB类型 6.3、修改BLOB类型 6.4、数据库表中读取BLOG类型 七、批量处理 八、数据库事务 8.1、问题引出 8.2、事务 8.3、事务...预先在缓冲池中放入一定数量连接,当需要建立数据库连接,只需“缓冲池”中取出一个,使用完毕之后再放回去。...当数据库访问结束后,程序还是像以前一样关闭数据库连接:conn.close(); 但conn.close()并没有关闭数据库物理连接,它仅仅把数据库连接释放,归还给了数据库连接池。...当数据库访问结束后,程序还是像以前一样关闭数据库连接:conn.close(); 但上面的代码并没有关闭数据库物理连接,它仅仅把数据库连接释放,归还给了数据库连接池。...PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭

59620

java核心技术第一篇之数据库基础

java 数据库 项目 逻辑数据库 类 表 类中成员属性 表字段(列) 属性数据类型 字段数据类型 对象 表中一行记录 04.常见数据库管理系统 MYSQL :开源免费数据库...,小型数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。...Oracle :收费大型数据库Oracle公司产品。Oracle收购SUN公司,收购MYSQL。 DB2:IBM公司数据库产品,收费。常应用在银行系统中....SQLite : 嵌入式小型数据库,应用在手机端。 常用数据库:MYSQL,Oracle. 这里使用MySQL数据库。MySQL中可以有多个数据库数据库是真正存储数据地方。...05.MySQL安装和客户端连接: 1.连接MySQL服务器端: 1).使用命令行:Mysql数据库root密码重置 1) 停止mysql服务器 运行输入services.msc 停止mysql

56720

MySQL层相关优化

它和官方ORACLE MySQL版本基本完全兼容,并且性能大约有20%以上提升,因此我优先推荐它,我自己也2008年一直以它为主。...这三种设置值导致数据库性能受到影响程度分别是:高、中、低,也就是第一个会另数据库最慢,最后一个则相反; 5、设置innodb_file_per_table = 1,使用独立表空间,我实在是想不出来用共享表空间有什么好处了...此外,字段属性尽量都加上NOT NULL约束,可一定程度提高性能; 3、尽可能不使用TEXT/BLOB类型,确实需要的话,建议拆分到子表中,不要和主表放在一起,避免SELECT * 时候读性能太差。...4、读取数据,只选取所需要列,不要每次都SELECT *,避免产生严重随机读问题,尤其是读到一些TEXT/BLOB列; 5、对一个VARCHAR(N)列创建索引,通常取其50%(甚至更小)左右长度创建前缀索引就足以满足...80%以上查询需求了,没必要创建整列全长度索引; 6、通常情况下,子查询性能比较差,建议改造成JOIN写法; 7、多表联接查询,关联字段类型尽量一致,并且都要有索引; 8、多表连接查询,把结果集小

92780
领券