oldma老兄请进,请教你一个关于oracle字符的问题。

04-04-15 flyylf
我看过一篇这样的帖子,可是没有说的 很具体,我知道你是懂这个问题的。

我的问题就是:我用 varchar2(4000)来定义一个字段

可是用preparedStatment.setString(1,myword);

添加数据时却只能最多添加666个汉字,这是什么原因那?

可是当我直接用sqlplus来执行insert语句时却可以添加2000个汉字。

用什么方法可以解决这个问题那?我知道可以用long可是用long的话设计到的改动将很大。如果用varchar2(4000),我是改程序那?还是改数据库设置那?还是字符转码那?谢谢老兄,望不吝赐教!

swordfly
2004-04-20 10:51
以下是sun的javadoc对PreparedStatement的setString方法的说明。

setString

public void setString(int parameterIndex,

String x)

throws SQLException

Sets the designated parameter to the given Java String value. The driver converts this to an SQL VARCHAR or LONGVARCHAR value (depending on the argument's size relative to the driver's limits on VARCHAR values) when it sends it to the database.

是不是和jdbc驱动有关

猜你喜欢