Oracle中对超长内容的处理,避免出现can bind a LONG value only for insert into a LONG column错误

来源:互联网 发布:jquery object转json 编辑:程序博客网 时间:2024/05/16 06:36

错误使用了该行代码:

paramList.Add(new OracleParameter(":" + field, val));


猜想可能是由于这行代码的问题导致,因此修改参数化的Oracle参数变量代码为另外一个种指定对象类型的方式:

OracleParameter a = new OracleParameter(":" + field, OracleType.Clob, val.ToString().Length);
                        a.Value 
= val;
                        paramList.Add(a);

验证通过,发现再长的内容,写入也是正常的,不会出错和出现的截断乱码。由于第一种忽略了Oracle参数类型,就是为了适应各种类型对象的参数化构造,实现统一添加参数化内容的,由于超长的字符内容会出现问题,因此只好修改基类操作的添加参数代码,添加一个条件分支作为处理。调整后的插入代码如下(更新代码类似操作):

原创粉丝点击