码迷,mamicode.com
首页 > 其他好文 > 详细

从 bcp 客户端收到一个对 colid x 无效的列长度。

时间:2015-10-08 18:02:07      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

批量插入数据的时候出现这个问题。

解决办法:某个数据的长度应该是大于这个数据对应的列的定义长度。

所以一一检查到底是那个列的长度超出了。

网络提供了这个种方法,可以查找具体是哪个列的长度超出了。

public void GetFiledSizeTest()
{
 string fileFullName = @"D:\GameLogs\2015-01-30_000000\Login.log";
 //每列的最大长度
 Dictionary<int, int> dicFieldLength = new Dictionary<int, int>();
 //每列的最大长度所在行号
 Dictionary<int, int> dicMaxFieldLenthRowNum = new Dictionary<int, int>();
 for (int i = 0; i < 11; i++)
 {
  dicFieldLength.Add(i, 0);
  dicMaxFieldLenthRowNum.Add(i, 0);
 }
 if (new FileInfo(fileFullName).Length > 0)
 {
  using (StreamReader sr = new StreamReader(fileFullName, Encoding.UTF8))
  {
   int rowNum = 0;
   while (sr.Peek() > -1)
   {
    string strRow = sr.ReadLine();
    rowNum++;
    object[] objRow = strRow.Split(,);
    for (int i = 0; i < objRow.Length; i++)
    {
       var len=objRow[i].ToString().Length;
 
       if (dicFieldLength[i] < len)
       {
        dicFieldLength[i] = len;
        dicMaxFieldLenthRowNum[i] = rowNum;
       }
 
    }
   }
  }
 }
}

 

从 bcp 客户端收到一个对 colid x 无效的列长度。

标签:

原文地址:http://www.cnblogs.com/sunxi/p/4861629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!