代码如下:
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都不行
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都不行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货