oracle的varchar2(4000)可以存储2000个汉字或者4000个英文字符? .
一般情况下用ps.setString()的办法是不行的,因为oracle的驱动会把一个中文字用三个字节表示,加上jdbc本身对字符的的限制为2000,也就是600多字,如果是英文字符也只能到2000,英文用2个字节表示,但是oci驱动没有这个限制,如何能通过jdbc把
·
一般情况下用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();
ps.setCharacterStream(1,reader,chars.length);
ps.executeUpdate();
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)