使用SqlBulkCopy并获取此异常:
从bcp客户端收到colid 30的无效列长度.
几个小时以来,我一直在撞击这个.我知道哪一行有问题,但我不知道哪个列"colid 30".数据表中有178列.所有值似乎都是正确的,我没有看到任何值比我的数据库中的任何列数据类型更长.
该数据库包含房产列表,目前有超过300万条记录,所有记录都很好.
有没有办法确定colid 30是什么?或者有没有办法查看bcp提交给数据库的实际SQL?
我希望这也有助于解决别人的问题.
错误是因为数据表中的一个字符串/ varchar字段有一个分号";" 在它的价值.显然你需要在插入之前手动逃避这些!
我做了一个遍历所有行/列的循环并做了:
string.Replace(";", "CHAR(59)");
Run Code Online (Sandbox Code Playgroud)
之后,一切顺利插入.