45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:解决数据过长不能插入数据库的问题的方法

解决数据过长不能插入数据库的问题的方法

2016-09-06 22:06:50 来源:www.45fan.com 【

解决数据过长不能插入数据库的问题的方法

这种数据过长的问题也需要分类型对待,不同数据库,不同字段类型的操作都是不一样的
我们以Oracle数据库为例,
假定存储字段的名称为 field1 , 类型为 varchar2(4000),
这时候,理论的情况可以最大插入4000个字符或2000个中文,但实际进行数据库插入时,
实际的字符取决于我们数据库的平台,版本,SGA中PGA的大小,
以爱普生二期的公司数据库开发环境:PIII900,RAM256, Oracle8.17, SGA 300M为例,
当用Statement作为数据库操作容器时,直接的对field1插入会造成PGA的增大,有可能导致数据库CRASH
当用PrepareStatement作为数据库操作容器时,在field1为varchar2(4000)是,通常的操作是没有问题的。
 
当field1 的类型为long型,
这时候,理论的情况是可以最大插入2G的字符或1G的中文,但实际进行数据库插入时,
如用Statemetn作为数据库操作容器时,直接的插入同类型为varchar2(4000)的情况。
当用PrepareStatemtn作为数据库操作容器时,通常的操作只可以插入1567字符长度内的数据,这时,就需要
我们用流方式去解决问题(如所述)。
 
总结:
当我们将一个字段设置为long字段为其他大字段时,可使用流方式进行数据库操作,但此时,我们也失去了
该字段使用条件查询,创建索引等功能。
此问题出现在多处,如后台/部门公告、行业新闻等。
数据库中相应字段为varchar2(4000),但数据长度超过700就不能插入了。
PreparedStatement pstmt;
String content;
问题原因:
pstmt.setString(1,content);
如果content过长,插入数据库不能成功。
解决办法:
pstmt.setCharacterStream(1,new java.io.StringReader(content),content.length());
成功。
 

本文地址:http://www.45fan.com/dnjc/73408.html
Tags: 数据 插入 过长
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部