`
duanxw
  • 浏览: 8717 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

数据大小超出此类型的最大值; 解决办法

阅读更多

一、异常情况:
   有了一定Java编程经验之后,一般都使用PreparedStatement代替Statement。
   但实际开发中对数据库进行操作时,字段遇到大数据并且该字段为非BLOB,CLOB的类型时,若采用PreparedStatement方法setString方法时会如下异常: java.sql.SQLException: 数据大小超出此类型的最大值
   实际数据库定义字段长度为:4000,而包装的数据内容长度只有1000左右

二、分析原因:
1、驱动程序在把SQL语句发给数据库前,PreparedStatement对字符串进行预处理并进行了转义替换;
2、字符集原因。

三、解决办法:
   通过阅读PreparedStatement文档,setCharacterStream方法可以解决这个问题:
    stmt.setCharacterStream(1,
         new InputStreamReader(String内容, String内容.length());
四、案例总结:
   JDBC在转换过程中对字符串的长度做了限制。这个限制和数据库中字段的实际长度没有关系。而setCharacterStream()方法可以逃过字符转换限制,也就成为了解决此问题的方案之一。JDBC对转换字符长度的限制是为了转换过程中的数据扩展。根据实际测试结果,在ZHS16GBK字符集和thin驱动下,2000-4000长度的varchar字段都只能插入1333个字节(约666个汉字)。
   故解决PreparedStatement的setString中字符串长度问题可以有两种办法:
   1、使用setCharacterStream()方法;
   2、使用OCI驱动连接Oracle数据库。

分享到:
评论
2 楼 fireinjava 2012-12-18  
  我换了个ojdbc14.jar包就好了
1 楼 楚若之夜 2012-10-10  
感谢博主,我说怎么插入不进数据库。

相关推荐

    Mysql数据库导入超出默认大小和默认执行时间的解决方法

    以上策略并非互相排斥,可以根据实际情况组合使用,以便更有效地解决MySQL数据库导入超出默认大小和执行时间的问题。在进行任何调整前,记得备份数据,以防意外情况发生。同时,对服务器性能的监控也非常重要,以免...

    SQL_Server_数据类型详解

    SQL_Server_数据类型详解 SQL Server 数据类型是指在 SQL Server 中存储数据的...* image 型的数据也是可变长度的二进制数据,其最大存储大小为 2GB。image 型的数据类型主要用于存储图像、音频和视频等多媒体数据。

    模拟阶乘运算,可算超出数据范围较大阶乘值

    然而,常规的数据类型如int或long long可能会在计算大阶乘值时溢出,因为它们的最大值有限。对于超出这些类型范围的阶乘值,我们需要采用特殊的算法或者数据结构来处理。以下是一些处理大数阶乘的方法: 1. **大数...

    删除最大值.zip

    - 也可以使用优先队列(堆)或某些高级数据结构来更高效地找到最大值,但这超出了删除最大值的基本操作。 3. **删除最大值**: - 对于静态数组,删除操作通常是不可行的,因为它们的大小是固定的。在这种情况下,...

    order_statistics_filters.rar_最大值滤波_最大值滤波器

    通过这个文件,我们可以期待看到如何在MATLAB中定义滤波窗口大小,如何遍历输入数据,并如何找到每个窗口内的最大值以实现滤波的过程。 在实际应用中,最大值滤波器的实现可能包括以下步骤: 1. 定义滤波器窗口大小...

    SQLite3中的数据类型

    只有INTEGER PRIMARY KEY列才能使用AUTOINCREMENT,而且每次插入新记录时,会找到当前最大值加1作为新值。如果表中有多个INTEGER PRIMARY KEY,只有一个能使用AUTOINCREMENT特性。 7. 动态类型系统 SQLite3使用...

    找矩阵最大值.rar(C语言版)

    在本项目中,我们主要探讨的是使用C语言来实现一个程序,该程序能接收用户输入的矩阵数据,并找出其中的最大值。这个任务是C语言学习过程中常见的一种练习,旨在提高学生对数组操作、循环控制以及数值比较的理解。...

    使用int 最大值,最小值,注意啦

    本文将深入探讨整型变量的大小、最大值与最小值的概念及其在实际编程中的应用。 ### 一、整型变量的基础概念 整型变量是一种用于存储整数的变量类型。它有两种形式:无符号整型(unsigned int)和有符号整型...

    找最大值(新手向)

    在编程领域,找最大值是一项基础且常见的任务,尤其对于初学者来说,它是理解数据处理和算法的一个很好的起点。在本教程中,我们将探讨如何在C++编程语言中找到一个整数数组中的最大值。我们将从基本的遍历算法开始...

    MSSQL SERVER数据类型.

    在SQL Server中,数据类型是定义列或变量可以存储何种类型数据的关键元素。理解各种数据类型对于数据库设计和开发至关重要,因为它们决定了数据的精度、范围以及存储需求。以下是MSSQL SERVER中常用的一些数据类型的...

    oracle数据类型.doc

    如果输入值超出定义的位数,Oracle会截取超出部分。例如,`number(3,0)`,输入575.316,实际保存的是575。 4. **Date**: 用于存储日期和时间,范围从公元前4712年到公元4712年,包括小时、分钟和秒。默认格式为DD-...

    Oracle基本数据类型.pdf

    - 例如,`NUMBER(5,2)` 表示该字段可以存储的最大值是 99,999。 - **应用场景**: 适用于各种数值型数据,如金额、数量等。 #### 四、日期时间数据类型 ##### DATE - **定义**: 存储从公元前 4712 年 1 月 1 日到...

    SQL Server 2005的各种限制,table可容纳列数

    * 最大连接数:已配置连接的最大值 * 最大锁数:每个服务器的最大锁数 * 最大每个连接的锁数:每个服务器的最大锁数 存储过程限制 * 最大嵌套存储过程级别数:63 * 最大嵌套子查询个数:32 * 最大嵌套触发器层数:...

    Java数值类型

    这些取值范围决定了不同数值类型可以表示的最大和最小值,开发者需要根据实际需求选择合适的数据类型。 ##### 2. 数据类型的转化 Java支持不同类型之间的数据转换,分为自动类型转换和强制类型转换两种情况。 - *...

    PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法

    在使用PHPMyAdmin进行数据库迁移或恢复过程中,可能会遇到一个常见的问题:当尝试导入的数据库文件大小超过PHP的默认限制时,系统会返回错误提示,表明文件大小超出PHP的允许范围。这通常是因为PHP默认设置中对上传...

    php-leetcode题解之滑动窗口最大值.zip

    滑动窗口最大值问题通常要求我们在一个数组中找到一个固定大小的窗口,并在这个窗口内寻找最大值,同时窗口会不断地向右移动。这个问题的关键在于如何快速地更新窗口内的最大值,而不需要遍历整个窗口。一种常见的...

    UDP数据传输大小.pdf

    但是,实际上这个最大值受到操作系统和网络设备的限制。例如,某些系统可能限制了最大IP数据报的长度,如SunOS 4.1.3的环回接口限制为32767字节,而Solaris 2.2可以支持65535字节。因此,实际应用中,我们需要根据...

    phpExcel导出大量数据出现内存溢出错误的解决方法

    这主要是因为phpExcel在内存中保存单元格信息,当数据量大时,内存消耗超过PHP配置的最大值,导致错误。下面将详细探讨如何解决phpExcel导出大量数据时出现的内存溢出问题。 首先,需要了解phpExcel在内存使用上的...

    第3章 PL-SQL数据类型

    数字类型是PL-SQL中最常用的一类数据类型,它可以存储整数、实数和浮点数,用于表示数值大小并参与各种计算。 ##### 1. BINARY_INTEGER - **定义与用途**:`BINARY_INTEGER` 是一种存储有符号整数的数据类型,取值...

    Excel模板4-超出绘图区的柱形图.zip

    - 修改轴的最大值:对于Y轴(值轴),右键单击轴,选择“格式轴”,在“刻度”选项卡中调整最大值以适应超出绘图区的柱形。 - 调整柱形位置:选择超出绘图区的柱形,然后更改其“高度”属性,使其部分超出图表区域...

Global site tag (gtag.js) - Google Analytics