Oracle Clob字段过长保存出错改如何解决?

零下一度
发布: 2018-05-26 16:02:14
原创
3472 人浏览过

出现此问题的原因是主要是因为拼接的SQL语句过长导致,

一般来说Oracle的SQL执行语句,英文不能超过4000字符,中文不能超过2000字符,所以一旦Clob字段的内容比较多,就会出现拼接的SQL

的长度过长,从而导致问题的出现。

比较简单的解决方法就是使用参数化查询来执行SQL语句,示例代码如下

OracleConnection Con = new System.Data.OracleClient.OracleConnection(connectStr);
           try
           {
decimal MsgId = 20;
               string InsertSql = @"insert into MSG
                                 (ID, TITLE, CONTENT, SORT, TIME, AUTHOR, GROUP)
                               values
                                 (:ID,
                                  :TITLE,
                                  :CONTENT,
                                  :SORT,
                                  :TIME,
                                  :AUTHOR,
                                  :GROUP)";
Con.Open();
               OracleCommand cmd = new OracleCommand(InsertSql, Con);
               OracleParameter TITLE = new OracleParameter("TITLE", OracleType.NVarChar);
               OracleParameter CONTENT = new OracleParameter("CONTENT", OracleType.Clob);
               OracleParameter GID = new OracleParameter("GID", OracleType.NVarChar);
               OracleParameter SORT = new OracleParameter("SORT", OracleType.Number);
               OracleParameter TIME = new OracleParameter("TIME", OracleType.DateTime);
               OracleParameter AUTHOR = new OracleParameter("AUTHOR", OracleType.NVarChar);
               OracleParameter GROUP = new OracleParameter("GROUP", OracleType.NVarChar);
TITLE.Value = Model.MsgTitle;
CONTENT.Value = Model.MsgContent;
ID.Value = Guid.NewGuid().ToString();
SORT.Value = MsgId;
TIME.Value = DateTime.Now;
AUTHOR.Value = Model.MsgAuthor;
GROUP.Value = Model.GroupId;
               cmd.Parameters.Add(MSGTITLE);
               cmd.Parameters.Add(MSGCONTENT);
               cmd.Parameters.Add(MSGID);
               cmd.Parameters.Add(MSGSORT);
               cmd.Parameters.Add(MSGTIME);
               cmd.Parameters.Add(MSGAUTHOR);
               cmd.Parameters.Add(MGSGROUP);
               cmd.ExecuteNonQuery();
               Con.Close();

           }
           catch (Exception ex)
           {

           }
登录后复制

以上是 Oracle Clob字段过长保存出错改如何解决?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!