你的数据库字段定义的长度超过了,java中的String长度是没有限制的(受系统限制)。检查检查你的数据库定义。

解决方案 »

  1.   

    数据库我用的是oracle,请问留言部分我应该用什么?
    为什么oracle没有SQL中的TEXT的字段类型?
      

  2.   

    oracle中存储大型字符串需要用clob类型。当然也有long,不过现在更倾向于clob。存储的时候需要特殊sql操作,把字符串转换为ascii.
      

  3.   

    你可以使用NVARCHAR2,不过最大长度只能是4000,也就是可以存4000个字符或是汉字了。NVARCHAR2(4000),这是变长字符串,不是定长的,也就是你存1个汉字,它就占用一个汉字的长度。
      

  4.   

    Oracle 没有SQL Server中的TEXT的字段类型,但是你可以用可变长VCHAR来定义,最大为4000。实际上和TEXT是相同的,也可以用NCHAR型可容纳更多并且支持NLS的字段。
      

  5.   

    to ligar:
        如果用clob,应该怎么操作?
      能否给个简单的例子?
      

  6.   

    例如:
    1、建表:
    create table plan (
    id number not null ;
    title varchar(80) not null ;
    body clob null
    );2、将jsp页面参数通过request赋给javaBean实例planBean属性中 ,javaBean处理如下
    private void insert(HttpServletRequest request, HttpServletResponse response) { 
    try {
    oJdbc.getConnection();
    oJdbc.beginTran(); 
    String title = request.getParemeter("paremeter_title") ;
    String body =  request.getParemeter("paremeter_body") ;
    String strSql = "insert plan into (id,title,body)" ;
           strSql +=" "+"value(0,'"+title+"','"+body+"')";
    oJdbc.getStatement().executeUpdate(strSql);
    oJdbc.commit;
    }catch(SQLException ex){
     oJdbc.rollback();
     se.printStackTrace();
    }finally{
     oJdbc.closeConnection();
    }
      

  7.   

    问题依旧呀,string literal too long:
    executeUpdate("insert plan too (id,title,body) values (0,........);解决不了呀!
    帮帮忙!!!
    好象只能用clob,但我不会用这个类,怎么把string转进clob中?
      

  8.   

    sql server用textoracle用LONG VARCHAR
      

  9.   

    用clob吧,很快就能搞定的,代码参考:
    /*
     * 作者:杨圣发
     * 申明:如果转载,请保留作者名称
     */
    java.sql.PreparedStatement pstmt = null; 
    ResultSet rs = null; 
    String query = "";  
    conn.setAutoCommit(false); 
    query = "insert into plan values('001','test',empty_clob())"; 
               //body 是clob字段
    java.sql.PreparedStatement pstmt = conn.prepareStatement(query);  pstmt.executeUpdate();
    pstmt = null  
    query = "select body from clobtest_table where id = '001' for update"; 
    pstmt = con.prepareStatement(query) 
    rs= pstmt.executeQuery();  
    oracle.sql.CLOB clobBody = null; 
    if(rs.next())
    {
         clobBody = (oracle.sql.CLOB)rs.getClob(1); 

    Writer wr = clobtt.getCharacterOutputStream(); 
    wr.write(strtmp);
     wr.flush(); 
    wr.close(); 
    rs.close(); 
    con.commit();
      

  10.   

    long varchar也有限制?
    setString()报错,
    Data size bigger than max size of this type.
      

  11.   

    如果我从post得到数据,如何转变成clob??
    String body = request.getParameter("post_body");? (String)body -> Clob(clobBody)?