首页 > 其他分享 >从 bcp 客户端收到一个对 colid x 无效的列长度。

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

时间:2025-01-10 10:32:49浏览次数:1  
标签:Dictionary 数据 dicFieldLength new colid 长度 bcp 客户端

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

原因分析:某个数据的长度应该是大于这个数据对应的列的定义长度。

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

第一种方法:

从 bcp 客户端收到一个对 colid x 无效的列长度。colid x 是多少说明是第x+1列出了问题,比如colid 1说明是第二列。那么一一排查这列的数据就可以找到问题所在。

如果数据太多的话可以直接修改数据库的字段,把字段的数据类型的长度增大就行了。比如原先varchar(50)那么可以变成varchar(100)再试一下。

第二种方法:

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

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 = ; i < ; i++)
 {
  dicFieldLength.Add(i, );
  dicMaxFieldLenthRowNum.Add(i, );
 }
 if (new FileInfo(fileFullName).Length > )
 {
  using (StreamReader sr = new StreamReader(fileFullName, Encoding.UTF8))
  {
   int rowNum = ;
   while (sr.Peek() > -)
   {
    string strRow = sr.ReadLine();
    rowNum++;
    object[] objRow = strRow.Split(',');
    for (int i = ; i < objRow.Length; i++)
    {
       var len=objRow[i].ToString().Length;
 
       if (dicFieldLength[i] < len)
       {
        dicFieldLength[i] = len;
        dicMaxFieldLenthRowNum[i] = rowNum;
       }
 
    }
   }
  }
 }
}

第三种方法:

注意检查这几项:1、插入的某一列的数据的长度是否大于数据库列的定义的长度?

2、数据库某一列是否不为空,而插入的数据却为空

3、当用sqlbulkcopy批量插入数据时,内存数据表DataTable的列和数据库的列是否一致。

标签:Dictionary,数据,dicFieldLength,new,colid,长度,bcp,客户端
From: https://www.cnblogs.com/raincedar/p/18663499

相关文章

  • ABP项目添加第三方API客户端代理
    第三方API客户端代理启动模板中包含HttpApi.Client​项目,这个项目是应用程序自己的客户端代理,用于提供给其他应用访问。例如BlazorWebAssembly使用HttpApi.Client​项目生成的API客户端代理访问应用程序的服务。本文介绍在应用程序中如何访问其他应用的API。‍远程应用服务接......
  • C# 使用心跳机制实现 TCP 客户端自动重连
    C#使用心跳机制实现TCP客户端自动重连简介一、心跳机制二、实现步骤1.创建TCP客户端2.实现心跳检测3.自动重连机制4.启动客户端和心跳检测三、注意事项简介在网络编程中,维持客户端与服务器之间的稳定连接是一项挑战,尤其是在不稳定的网络环境下。TCP连接......
  • sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的
    文章目录引言I基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表seealso:监视SQLServer内存使用量资源信号灯DMVsys.dm_exec_query_resource_semaphores(确定查询执行内存的等待)引言查询历史数据库客户端ip应......
  • ESP32作为BLE客户端gatt-client教程
    一、介绍该代码实现了一个低功耗蓝牙(BLE)通用属性(GATT)客户端,该客户端扫描附近的外围服务器并连接到预定义的服务。然后,客户端搜索可用特征并订阅已知特征,以便接收通知或指示。该示例可以注册应用程序配置文件并初始化一系列事件,这些事件可用于配置通用访问配置文件(GAP)参......
  • BOS或客户端清理服务器设置历史记录
    1、客户端服务器设置中“清除全部记录”2、反编译Kingdee.BOS.IDE.exe,查找配置文件修改ServerPathHisory, C:\Users\HUAXIN\Documents\Kingdee\K3Cloud\LoginInfo.xml      ......
  • 在iStoreOS上配置frpc客户端
    摘自:https://www.koolcenter.com/posts/224安装frpc,直接在iStoreOS商店找到全部软件。输入名称点新增:填写ip地址以及端口:web配置看图:......
  • FTP客户端无法正常显示服务器内容的原因分析与解决方法
    自从重装系统之后,用户发现通过FTP客户端连接到服务器时,远程目录显示为空。尽管FTP设置中的路径指向正确的位置(如d:\\www\\myweb),但在客户端却看不到任何文件或文件夹。解决方案:问题解决方案FTP客户端不显示内容首先确认FTP服务器是否正常运行,尝试从其他设备或网络环境......
  • 关于 webservice 日志中 源IP是node IP的问题,是否能解决换成 真实的客户端IP呢
    本篇目录1.问题背景2.部署gitlab17.52.1添加repo源2.2添加repo源下载17.5.0的charts包2.3修改values文件2.3.1hosts修改如下2.3.2appConfig修改如下2.3.3gitlab下的sidekiq配置2.3.4certmanager修改如下2.3.5nginx-ingress修改如下2.3.6<可选>prometheus修......
  • sql server版本太老,java客户端连接失败问题定位
    背景最近半路接手了一个系统的优化需求,这个系统有个遗留问题还没解决,随着新需求的上线,系统正式开放使用,这个遗留问题也必须解决。这个系统大概是下面这样的,支持录入各种数据源的信息(ip、端口、数据库种类、账号密码等):录入完成后,可以查看这些数据源中的表、表的ddl、表中的列(列......
  • C/S客户端程序 winform接收外部http (GET|POST)请求 工具类逻辑开发
    前言我们知道web项目(即B/S端程序的S端)是很容易提供API接口,供外部进行访问的,这是Web本身的特性所然。Web项目在发布后,会挂载到比如IIS管理器,上面会要求配置IP和端口号,外部访问时根据约定的IP,端口,以及约定的路由路径、请求方式、传参等就很容易外部对内API接口访问。客户端程序(......