代码如下:
                CustomDatabase db = CustomDatabaseFactory.CreateDatabase();
                string deleteSql = @"
                                Delete From Si_Sendlog
                                Where Sl_Driveid = :i_Id
                                And Sl_Type = :i_Type";
                DbCommand cmd = db.GetSqlStringCommand(deleteSql);
                db.AddInParameter(cmd, ":i_Id", DbType.String, id);
                db.AddInParameter(cmd, ":i_Type", DbType.String, ct + f);
                db.ExecuteNonQuery(cmd, trans);
                string sql = @"
                                Insert INTO SI_SendLog
                                (SL_DriveID, SL_ID, SL_Time, SL_SIGN, Sl_Text, SL_TYPE)
                                values
                                (:i_Id, SI_SendLog_S.nextval, SYSDATE, '0', :i_MSG, :i_Type)";
                cmd = db.GetSqlStringCommand(sql);
                db.AddInParameter(cmd, "i_Id", DbType.String, id);
                db.AddInParameter(cmd, "i_Type", DbType.String, ct + f);
                OracleParameter parameter = new OracleParameter("i_MSG", message);
                parameter.OracleType = OracleType.Clob;
                cmd.Parameters.Add(parameter);
                db.ExecuteNonQuery(cmd);
                //db.ExecuteNonQuery(cmd, trans);
不带事务,message大概有39000字符能正常新增到数据库表中
但是使用带事务的执行,则会报错ORA-22835错误
其中表SI_SendLog对应的字段Sl_Text是LONG类型,
将parameter.OracleType = OracleType.Clob;
修改为parameter.OracleType = OracleType.LongRaw或者LongVarChar都不行