String strSQL_3 = "insert into remails(ID,MAILSID,DEPTRE,STAFFRE,RECONTENT) values(seq_remails.nextval,?,?,?,?)";
    try {
        preStmt_3 = cn.prepareStatement(strSQL_3,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        preStmt_3.setString(1,request.getParameter("ID"));
        preStmt_3.setString(2,session.getValue("DEPTID").toString());
        preStmt_3.setString(3,session.getValue("StaffID").toString());
        String strhtml = h.replace(request.getParameter("content")," "," ");
        strhtml = h.replace(strhtml,"\r","<br>");
        strhtml = h.replace(strhtml,"\n","<br>");
        preStmt_3.setString(4,strhtml);
        preStmt_3.executeUpdate();
        preStmt_3.close();
    } catch(Exception e) {
        out.println(e);
    }其中RECONTENT是CLOB字段

解决方案 »

  1.   

    使用:
    preStmt_3.setClob..........
      

  2.   

    可以把字符串转化成byte[]类型
    byte[] tempByte  = System.Text.Encoding.UTF8.GetBytes(request.getParameter("content"));
    String strSQL_3 = "insert into remails(ID,MAILSID,DEPTRE,STAFFRE,RECONTENT) values(seq_remails.nextval,:MAILSID,:DEPTRE,:STAFFRE,:RECONTENT)";                    string conn = System.Configuration.ConfigurationSettings.AppSettings["OracleConnectionString"].ToString();
    OracleConnection oracleConnection = new OracleConnection(conn);
    OracleTransaction oracleTransaction;
    OracleCommand oracleCommand = new OracleCommand();
    oracleConnection.Open();
    oracleTransaction = oracleConnection.BeginTransaction();
    try 
    {
    oracleCommand.Connection  = oracleConnection;
    oracleCommand.Transaction = oracleTransaction;
                                    
                                    oracleCommand.Parameters.Add("MAILSID",OracleType.VARCHAR);
                                    oracleCommand.Parameters.Add("DEPTRE",OracleType.VARCHAR);
                                    oracleCommand.Parameters.Add("STAFFRE",OracleType.VARCHAR);
    oracleCommand.Parameters.Add("RECONTENT",OracleType.Blob);
                                    oracleCommand.Parameters["MAILSID"].Value = request.getParameter("ID");
                                    oracleCommand.Parameters["DEPTRE"].Value = session.getValue("DEPTID").toString();
                                    oracleCommand.Parameters["STAFFRE"].Value = session.getValue("StaffID").toString();                 oracleCommand.Parameters["RECONTENT"].Value = tempByte; oracleCommand.CommandText = strSQL_3;
    oracleCommand.ExecuteNonQuery();
    oracleTransaction.Commit();
    }
    catch(Exception ee) 
    {
    oracleTransaction.Rollback();
    throw ee;
    }
    finally 
    {
    oracleConnection.Close();
    }