oracle里有张表persontable(ID,R1,R2)
其中r1 (varchar2)4000,r2 (varchar2)3800; OracleConnection connect = new OracleConnection();
connect.ConnectionString = ";";
connect.Open();
OracleCommand cmd = connect.CreateCommand();
cmd.Connection = connect;
cmd.CommandText = "";
Random rnd = new Random();
OracleParameter[] p = new OracleParameter[2];
for (int i = 1; i <= 10; i++)
{
p[0] = cmd.CreateParameter();
p[0].ParameterName = ":R1";
p[0].DbType = DbType.Binary;
p[0].Size = 4000;
p[0].Value = new Byte[4000] ;
p[0].Direction = ParameterDirection.Input;
cmd.Parameters.Add(p[0]);
p[1] = new OracleParameter();
p[1].ParameterName = ":R2";
p[1].DbType = DbType.Binary;
p[1].Size = 3800;
p[1].Value = new Byte[3800] ;
p[1].Direction = ParameterDirection.Input;
cmd.Parameters.Add(p[1]);
cmd.CommandText = "insert into persontable(ID,R1,R2) values(" + i.ToString() + ",R1,:R2)";
cmd.ExecuteNonQuery();
}
cmd.Dispose();
connect.Dispose();
Console.Read();
可是经常在cmd.ExecuteNonQuery();
出问题。
ORA-12899: value too large for column "SPM_TST_OWNER"."PERSONTABLE"."R2" (actual: 4000, maximum: 3800)我能想到的问题就是.net command最大执行的sql语句长度是2000.可是要插入大于2000的就要用这种方式。可是要怎么写就是忘了,大家帮忙看看啊
其中r1 (varchar2)4000,r2 (varchar2)3800; OracleConnection connect = new OracleConnection();
connect.ConnectionString = ";";
connect.Open();
OracleCommand cmd = connect.CreateCommand();
cmd.Connection = connect;
cmd.CommandText = "";
Random rnd = new Random();
OracleParameter[] p = new OracleParameter[2];
for (int i = 1; i <= 10; i++)
{
p[0] = cmd.CreateParameter();
p[0].ParameterName = ":R1";
p[0].DbType = DbType.Binary;
p[0].Size = 4000;
p[0].Value = new Byte[4000] ;
p[0].Direction = ParameterDirection.Input;
cmd.Parameters.Add(p[0]);
p[1] = new OracleParameter();
p[1].ParameterName = ":R2";
p[1].DbType = DbType.Binary;
p[1].Size = 3800;
p[1].Value = new Byte[3800] ;
p[1].Direction = ParameterDirection.Input;
cmd.Parameters.Add(p[1]);
cmd.CommandText = "insert into persontable(ID,R1,R2) values(" + i.ToString() + ",R1,:R2)";
cmd.ExecuteNonQuery();
}
cmd.Dispose();
connect.Dispose();
Console.Read();
可是经常在cmd.ExecuteNonQuery();
出问题。
ORA-12899: value too large for column "SPM_TST_OWNER"."PERSONTABLE"."R2" (actual: 4000, maximum: 3800)我能想到的问题就是.net command最大执行的sql语句长度是2000.可是要插入大于2000的就要用这种方式。可是要怎么写就是忘了,大家帮忙看看啊
提示的意思是R2字段最大3800,实际上你要插入4000