java.sql.SQLException: 数据大小超出此类型的最大值的问题

转【原文

数据库:Oracle 9i

数据库字段类型:varchar2(4000)

输入汉字:大于600字(左右)

问题1:当遇到“java.sql.SQLException:数据大小超出此类型的最大值”时...

解决办法:这是jdbc驱动的问题,更新一下Oracle的class12.jar驱动就可以解决(可以用oracle10j)。

问题2:当遇到“ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”时...

原因:

   我的数据库字符集应该是UTF-8的,对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000的当做LONG型处理,你的表中有两个这样的字段,插入数据时相当于同时操作2个LONG字段,所以报错。

解决办法:建议减小字段长度或拆分。实在需要的,可以转而采用CLOB字段类型。

还可以把实例的页大小 变大,一般默认是8K, 可以增加到16K,32K。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,972评论 0 9
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 4,831评论 0 0
  • [强]很激励的一段话: [强]不走出去,家就是你的世界。走出去 世界就是你的家! [强]如果你不花...
    黎均铤阅读 1,589评论 0 0
  • 有个段子这么玩的,0岁闪亮登场,10岁茁壮成长, 20岁为情徬徨,30岁拼命打闯,40岁基本定向,50岁回头望望,...
    为之疯狂点阅读 1,288评论 0 0
  • 第三章 死人了 为了防止这人在她处理小蛇的时候突然猝死,晏沙点了他的穴道,暂时的帮他止了血。 她把蛇压在地上,用...
    千秋菌阅读 2,615评论 0 0

友情链接更多精彩内容