那要看你数据库的字符集,多字节字符集一般只能存1000-2000个字符,在多就用CLOB吧

解决方案 »

  1.   

    ORA-01480 trailing null missing from STR bind valueCause: A bind variable of type 5 (null-terminated string) does not contain the terminating null in its buffer.Action: Terminate the string with a null character
      

  2.   

    你是不是写入了中文?
    : catfox(catfox)
         你那样写谁都会呀,从ERRORS文档中抄来的,呵呵。
      

  3.   

    强烈关注!!我也是定义了varchar2类型的,长度为4000,可是只能存到1024大小的长度。我里面存的是汉字。请问为什么不能在里面存2000个汉字啊!!!!强烈关注~~~~~~~~
      

  4.   

    看看你的字符集,有的是一个汉字占四个字符的,比如我的是utf8编码的,你看看我做的试验吧:
    SQL> alter table t1
      2  modify name char(2);表已更改。
    SQL> insert into t1 values('为');
    insert into t1 values('为')
                          *
    ERROR 位于第 1 行:
    ORA-01401: 插入的值对于列过大SQL> alter table
      2  t1 modify name char(4);表已更改。SQL> insert into t1 values('为');已创建 1 行。
      

  5.   

    ORA-01401: 插入的值对于列过大的错误,而你是
    ORA-01480:trailling missing from STR bind value
    看看你的insert 值是否有问题
      

  6.   

    如果数据库字符集是utf8,一个中文字符占用三个字节.
     1333*3=3999<4000. 再多了就存不了. 如果有汉字要保存,不如使用nchar,nvarchar2,nclob等列.
     
      可能需要配置参数NLS_LENGTH_SEMANTICS  NLS_LENGTH_SEMANTICS 决定了使用哪种方案,缺省为Byte.
               
      建议: 不要混合使用.仅当列类型为NCHAR(NVARCHAR2)时才使用 character semantics.
      

  7.   


     楼主的问题看来还是出在insert 语句本身.