我没有遇到过你说的情况,一般情况下字符长度只要不超过2000应该是没问题的,对于ORACLE来说,4000的字符长度都可以,但对于客户端来说就不一定了,着要取决与你所使用的工具.
 另外你能确定是ORACLE报的错吗?如果是可能是你真的超长了.具体造成超长的原因可能是存在中文字符的关系.举个例子:
 对于中文字符集:
  select length('实验数据') from dual;返回:4,而如果保存在VARCHAR2(4)中绝对会超长.
 对于英文字符集:
  select length('实验数据') from dual;返回:8
 另外也可能是因为你要保存的字符串中包含了非法字符的原因.

解决方案 »

  1.   

    我是通过jdbc向oracle插入数据,pstmt.setString(1, str),
    插入不到700个汉字就要出错,将字段由varchar2(2000)改为varchar2(4000)
    , 或者是long,也一样有问题。
      

  2.   

    不会吧,我用的有的字段就是VARCHAR2(4000),好象可以插入700左右的汉字的,有时一篇文章还不止700个汉字
      

  3.   

    错误信息为:数据大小超出此类型的最大值:2326
    如果是jdbc的问题应该如何解决呢?字符串在表单通过textarea提交,
    用request.getParameter()接收.
      

  4.   

    你先看看request.getParameter()接收过来的是不是正确嘛!
      

  5.   

    jdbc的问题,oracle插入4000字符都没问题。
      

  6.   

    可能是java的String类的长度只能有2K吧!所以不能。
      

  7.   

    是oracle jdbc的BUG,如果string长度大于2000,不能用setString