您的位置:首页 > 数据库 > Oracle

oracle的varchar2(4000)可以存储2000个汉字或者4000个英文字符? .

2011-10-18 10:56 711 查看
一般情况下用ps.setString()的办法是不行的,
因为oracle的驱动会把一个中文字用三个字节表示,加上jdbc本身对字符的的限制为2000,
也就是600多字,如果是英文字符也只能到2000,英文用2个字节表示,
但是oci驱动没有这个限制,如何能通过jdbc把2000个汉字插进去呢?
利用PreparedStatement的setCharacterStream方法就可以了,

Reader reader = new StringReader(你需要插入的长字符);
ps.setCharacterStream(1,reader,字符长度);
这个就可以把2000个中文字符插入到表中
如果在hibernate中怎么办呢?暂时没有想到!换成clob类型吗?好像问题还不少!

Reader reader = new StringReader(new String(chars));
PreparedStatement ps = conn.prepareStatement("insert into tvar (value) values (?)");

ps.setCharacterStream(1,reader,chars.length);

ps.executeUpdate();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐