java.io.IOException: Tried to send an out-of-range integer as a 2-byte value

【问题处理】PSQLException错误Tried to send an out-of-range integer as a 2-byte value: 110629 PSQLException错误Tried to send an out-of-range integer as a 2-byte value: 110629,出现这个问题是因为使用的gauss jdbc驱动支持的参数个数最大是32767,也就是SQL中的参数个数最大不超过32767,而我们的操作的参数个数是110629,超过了上限32767。可以采用分批量操作的方法来解决这个问题,限制一次操作的最大参数个数,分批量多次操作,然后将多次操作的结果合并即可。 阅读详情

The newest feature in the software I’m developing at Just Software is a workstream, which is our aggregate name for microblog and activity stream functionality. Since we’re using a relational DB we’ve modeled this module in the way that every workstream message is attached to a user’s stream in a simple m:n relation manner. To reduce the number of INSERT statements the list of streams is assembled in the business service and then handed over to the database service which does sth. like this:

INSERT INTO workstream(msgid, userid) VALUES(5, 1), VALUES(5, 2), ...;

This however can result in a huge amount of VALUES(…) parameters when the platform has many users. It didn’t occur as a problem to me when implementing it; PostgreSQL can handle large data, no? Well, it’s at least limited. When you use a JDBC prepared statement then the number of parameters has a hard limit: 32767. If you don’t obey this limit you’ll see something like this:

java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 40000

Not a very concrete message, right? When I first saw this exception I was kind of baffled and disaffected. But after narrowing down the problem in a debug session and looking at the PostgreSQL JDBC driver’s source code the cause was obvious: the PostgreSQL client/backend protocol dictates that the number of parameters be send from the client to the Postgres backend as a 2 byte integer (aaah, now the above message actually makes sense). You’ll find details of the protocol here if you’re brave (my 2-byte friend is defined in the Parse message).

All right, got the bugger, what’s the solution now? Easy: Just split the parameter list up into chunks of say 30.000 parameters per INSERT statement.


----------------------------------

问题:pg的jdbc driver对prepared Statement的参数 set的时候,client端的一个发送大小限制在2-byte。

解决方法:目前的版本最大限制50132,建议每次分割在50,000个参数去执行。

Java响应式编程实战:Flux与Mono核心概念、操作符及背压机制详解 响应式编程是一种基于异步数据流和变化传播的编程范式,其核心原理在于将数据视为随时间推移而发出的连续事件序列,并通过声明式操作符进行组合与转换。这种模式的技术价值在于能够高效处理高并发、高吞吐量的实时数据场景,有效利用系统资源,避免线程阻塞。在微服务架构、实时数据处理和IoT物联网等应用场景中,响应式流(Reactive Streams)通过背压(Backpressure)机制实现流量控制,确保下游消费者不会被上游快速生产的数据淹没。本文聚焦于Java生态中的Project Reactor库,深入解析其核心组 阅读详情

相关推荐

【16】linux命令/工具,systemd,文件操作,动静态库,信号,socket

apt install python3-pip --fix-missing(断开vpn,cp /etc/apt/sources.list /etc/apt/sources.list.bak,python3 -m pip install --upgrade pip,apt-get update,pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com)设置时间,联网,apt-get install vim。

持续更新ing... 6792

【数据库BUG】Caused by: java.io.IOException: Tried to send an out-of-range integer as a 2-byte value

数据库bug

整理输出各类知识 3944

【第三章 19】MQTT Dashboard黑名单:从原理到实战可视化演示

MQTT安全与连接稳定性解决方案摘要 本文深入探讨MQTT Dashboard中的两大核心功能:黑名单管理和抖动链接检测。黑名单功能通过多维度匹配策略(客户端ID、IP地址、用户名)实现精细化访问控制,有效防御恶意攻击和未授权访问。抖动链接检测采用心跳超时和连接间隔统计算法,结合可视化监控(热力图、时序图)和自动处理机制(断开、限流),保障连接稳定性。文章从原理分析到代码实现,提供了完整的API设计和实战部署建议,帮助构建安全可靠的物联网通信系统。(149字)

ywl470812087的博客 130

PostgreSQL【异常 01】java.io.IOException:Tried to send an out-of-range integer as a 2-byte value 分析+解决

PostgreSQL【异常 01】java.io.IOException:Tried to send an out-of-range integer as a 2-byte value 分析+解决

Java与大数据相关实践内容分享! 4819

山景BP10_128DBG开发板通过蓝牙连接手机放歌实验回顾

最近在学习上海山景公司的BP10_128DBG的开发板,因为网上关于BP10开发板的帖子也比较少,在学习的时候也没有太多的参考资料,基本上都是官方的历程。蓝牙放歌这个demo对我来说也比较复杂,特写下此博客进行记录、总结,大家有需要的可以参考。

weixin_56646002的博客 2022

从零上手:基于英飞凌TC377的UDE STK 5.0实战调试指南

本文详细介绍了基于英飞凌TC377芯片和UDE STK 5.0的实战调试指南,涵盖硬件连接、工作空间配置、程序烧录、多核调试等关键步骤。特别针对汽车电子领域常见的多核架构调试难题,提供了断点设置、变量监控等实用技巧,帮助开发者快速上手并优化调试效率。

weixin_30839881的博客 685

PostgreSQL(十二)报错:Tried to send an out-of-range integer as a 2-byte value: 51000

PostgreSQL(十二)报错:Tried to send an out-of-range integer as a 2-byte value: 51000

ACGkaka的博客 5392

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 289

Caused by: java.io.lOException: Triedto send an out-of-range integer as a 2byte value: 52832

从源代码中可以看到pgsql使用2个字节的integer,故其取值范围为[-32768, 32767]。postgresql对于sql语句的参数数量是有限制的,最大为32767。这意味着sql语句的参数数量,即行数*列数之积必须小于等于32767.如果一次插入的数据量太多,使得参数数量超过了最大值,只能分批插入了。假如表有10列,那么一次最多插入3276行。

weixin_44089271的博客 1014

AutoGenTestCase - AI大模型生成测试用例

AI技术助力高效软件测试:AutoGenTestCase工具介绍 传统手工测试存在效率低、覆盖不全等痛点。AutoGenTestCase工具集成DeepSeek、通义千问等AI大模型,能快速解析需求并自动生成标准化测试用例,将数小时工作缩短至分钟级。该工具部署简单,仅需配置APIKey即可运行,支持多种测试用例类型比例设置,并输出Markdown和Excel格式的测试用例。通过GitHub或网盘下载后,用户可按照教程完成APIKey配置、需求文档上传和用例生成等操作,显著提升测试效率与覆盖完整性。

YIqifeibaQI的博客 349

什么是PMOS?什么是NMOS?两者有什么区别?

这个电压差被称为阈值电压(Vth),通常为0.7V至2V(低压NMOS)或4V至10V(功率NMOS)。当Vgs(栅极-源极电压)大于Vth时,沟道中的电子被吸引到栅极下方,形成导电通路,使电流可以从漏极流向源极。NMOS与PMOS的结构类似,都由三大部分组成:栅极(Gate)、源极(Source)和漏极(Drain)。由于NMOS在开启时,电子是主要的载流子,电子的迁移率比空穴高,因此NMOS通常具有更低的导通电阻(Rds(on)),这使其成为高速开关电路中的首选。它的沟道由电子(负载子)传导。

硅农深芯的博客 6446

java.io.IOException: Tried to send an out-of-range integer as a 2-byte value :79944

当你使用JDBC组装预执行语句的时候,参数的数量是有一个限制的,限制的大小就是2个byte的整数的大小,也就是32767,当超过这个大小的时候你就会看到上面的错误。这是因为PostgreSQL客户端/后端协议规定从客户端发送到PostgreSQL后端的参数的数量为2个byte的integer。 解决方案:遇到上述问题,是因为postpresql数据限制导致的,在不能更改数据库配置的情况,使用...

进行中 6726

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

java out of range_java.io.IOException: Tried to send an out-of-range integer as a 2-byte value

The newest feature in the software I’m developing atJust Softwareis a workstream, which is our aggregate name for microblog and activity stream functionality. Since we’re using a relational DB we’ve...

weixin_29098117的博客 992

【深度学习新浪潮】算力上太空:NVIDIA Space-1 Vera Rubin Module 深度技术解析

NVIDIA Space-1 Vera Rubin Module 不只是一款芯片模组,它是天地一体化 AI 的基础设施底座。它用成熟的 GPU 架构 + 航天级加固,把地面 AI 生态直接平移到太空。下一个 AI 创新战场,不在云端,而在轨道。在轨 LLM星上多模态实时处理卫星自主组网与分布式推理太空算力成为云计算的一级节点参考资料NVIDIA 官方博客:NVIDIA 推出太空计算,将 AI 送入太空轨道GTC 2026 黄仁勋主题演讲。

专注:太空算力、AI infra、异构调度、大模型成本工程 1128

GEE:连续变化检测 CCDC 提取断点信息(干扰时间、干扰幅度、干扰次数)

本文将介绍在 Google Earth Engine (GEE) 平台上连续变化检测与分类(Continuous Change Detection and Classification, CCDC)提取扰动时间、干扰幅度、干扰次数信息,并下载到本地的代码。

养乐多的博客 1946

java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 32801

java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 32801 在使用SpringData JPA的时候我们喜欢批量的向数据库插入数据,用于提升性能,我自己的一次小demo的学习中,使用了PostgreSql数据库,当我尝试向数据库执行一条查询语句的时候(条件包含九万个id值)他报错了,报错信息...

MusicIsMyAll的博客 9682

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Caused by: java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 103986

mybatis向postgresql插入批量数据,postgresql数据库的JDBC驱动对参数数量是有上限限制的,最大值为32767。插入数据时使用for循环拼接每条数据values(…),当拼接大小超过32767时就开始报错。这个大小由表中的字段多少和数据条数相关。拆分每次插入的数据条数,不要超过32767。

孤独的冥王星 1252

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java pgsql Caused by: java.io.IOException: Tried to send an out-of-range integer as a 2-byte value:

也就是说 pgsql使用2个字节的integer,故其取值范围为[-32768, 32767]。但是我们代码在传参数的时候 已经到了 48857;因此 导致不能正常执行;postgresql对于sql语句的参数数量是有限制的,最大为32767。

sinat_15872851的博客 1002

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java.io.IOException:Tried to send an out-of-range integer as a 2-byte value 分析+解决

例如:insert into table(id,name,gender,type),如果批量插入10000条,则参数的数量=10000*4。PostgreSQ&GaussDB数据库批量插入报错,原因是数据库批量插入的参数是有数量限制的。最终解决办法分批插入,数量不要超过高斯数据库的限制。

qq_40919128的博客 353

postgresql: IOException: Tried to send an out-of-range integer as a 2-byte value: 35834

Tried to send an out-of-range integer as a 2-byte value: 35834

qiaobing1226的博客 1018

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend

PostgreSQL and Hibernate java.io.IOException: Tried to send an out-of-range integer as a 2-byte value 目录 1.报错原因 2.对入参为大数据量list的解决方法 1.报错原因 对postgresql来说,sql查询语句中的入参容量大小超出允许的最大范围(32767)(有的数据库引擎对sql长度也有限制) 2.对入参为大数据量list的解决方法 java8 Stream流处理 //按每3个一组.

qq_28433521的博客 1万+

89 JPA EntityManager 中 in 选项超过 32768,Tried to send an out-of-range integer as a 2-byte value: 3276

前言 呵呵 最近碰到了着这样的一个问题 大致的错误信息如下, 第一眼看 似乎是也很难定位到问题是啥 Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:337) at org.postgresql.jd..

970655147的专栏 607

一文详解响应式编程springwebflux

详解springwebflux使用

工匠精神coding,终生学习 1251

Go核心特性(Java对比版)

Go核心特性摘要(Java对比版) Go语言的核心特性与Java存在显著差异: 接口实现:Go采用隐式接口实现机制,类型只需实现接口方法即可自动满足接口,无需显式声明implements,降低了代码耦合度。 错误处理:Go使用error返回值替代Java的异常机制,强制调用方显式处理错误,避免异常被忽略的问题。errors.Is/As支持错误链检查。 并发模型:Go通过轻量级的goroutine和channel实现并发,相比Java的Thread类更高效,支持百万级并发。 资源管理:defer关键字提供类似

2301_81699788的博客 653

Android 随笔集 By tuliyuan

1.反射机制调用系统服务EthernetManager private void getNetInfo(Context context) { try { // Log.d(TAG, "dddd getNetInfo is " ); Method getServiceMethod = Class.forName("android.os.ServiceManager").getDeclaredMethod("getService", new Cla

qq_18906227的博客 2284
上一篇: MyBatis批量插入数据
下一篇: mysql性能优化-慢查询分析、优化索引和配置
zljjava
博客等级 码龄15年 155粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值