从bcp客户端收到针对colid 6的无效列长

问题描述 投票:76回答:6

我想将cv文件数据从c#代码批量上传到sql server 2005,但是遇到以下错误-

从bcp客户端收到针对colid 6的无效列长。

批量复制写入数据库服务器时

c# .net sql-server database sql-server-2005
6个回答
0
投票
我收到了此错误消息,并使用了较新的sis版本(vs 2015企业版)。我将在这里发表评论,因为这是您在搜索此错误消息时出现的第一个参考。我认为当源字符大小大于目标字符大小时,大多数情况下字符列都会发生这种情况。我从Teradata数据库使用ado.net输入到ms sql时收到了此消息。我们正在从OLEDB转换为ADO.net,因为我们需要行加密,而在我们的环境中,只有ADO.net会进行行加密。很有趣,因为先前的oledb写入ms sql可以完美地处理所有字符转换,而没有任何编码覆盖。大肠菌群编号和您有时通过大肠菌群消息获得的相应“目标输入”列号是毫无价值的。从映射顶部或类似位置向下计数时,它不是该列。通过进行有根据的猜测,然后将对映射的输入更改为“忽略”,然后重新运行并查看消息是否消失,我发现了大肠杆菌病。就我而言,在我的环境中,我通过将Teradata输入替换为输出列的ms sql声明的字符大小来修复它。再次有趣的是,OLEDB刚处理了它,而ADO.net抛出了错误,不得不所有这些干预措施才能使其正常工作。通常,当目标是MS Sql时,应使用OLEDB。
© www.soinside.com 2019 - 2024. All rights reserved.