网站开发文档范文,茂名网站建设方案开发,网站设计入门,搜狐做app的网站如果仅仅在数据库中设置了类型为 CLOB 字段类型#xff0c;使用普通的 INSERT 语句直接写入数据到数据库的话#xff0c;它依然会将其视为 VARCHAR 类型数据#xff0c;并最大长度为 4000 字符。超过该长度会报出字符串超长#xff0c;写入数据失败的错误。使用 Dapper 处理…如果仅仅在数据库中设置了类型为 CLOB 字段类型使用普通的 INSERT 语句直接写入数据到数据库的话它依然会将其视为 VARCHAR 类型数据并最大长度为 4000 字符。超过该长度会报出字符串超长写入数据失败的错误。使用 Dapper 处理 CLOB 数据 INSERT代码如下OracleConnection cnn new OracleConnection(..数据库链接字符串..);cnn.Open();string content 假定超过4000的超长字符串;byte[] newValue Encoding.Unicode.GetBytes(content); //这里一定要使用 Unicode 字符编码OracleClob p_content new OracleClob(cnn);p_content.Write(newValue, 0, newValue.Length);string sql INSERT INTO TABLE(CONTENT) VALUES(:content);DynamicParameters parameter new DynamicParameters();parameter.Add(content, p_content);cnn.Execute(sql, parameter);cnn.Close();其实跟 Dapper 也没多大关系在 .Net 中的 Oracle CLOB 需要以上特殊处理下否则 Dapper 会将其视为普通字符串类型写入。敲重点如何 UPDATE CLOB 字段类型的数据本来没有这一节文章内容的我认为像 INSERT 同样的方式创建 SQL 参数传入就好了。实际上并不是UPDATE 需要跟以往同样的方式直接 string 传参就可以了以下参考OracleConnection cnn new OracleConnection(..数据库链接字符串..);cnn.Open();string content 假定超过4000的超长字符串;string sql UPDATE TABLE SET CONTENT :content WHERE ID :id;DynamicParameters parameter new DynamicParameters();parameter.Add(id, 10001);parameter.Add(content, content);cnn.Execute(sql, parameter);cnn.Close();你没看错它不需要再转换为 OracleClob 对象参数了转换了反而会报错。