我正在使用SSIS将csv非unicode文件导入SQL Server。我收到错误“文本被截断或目标代码页中的一个或多个字符不匹配”。它在第70962行的第0列失败,它的数据与其他所有行一样;第一列中的数据不会超过其上方行中的数据。
我的列0在平面文件连接中定义,在数据库中定义为255宽。行70692(以及大多数其他行)中的数据是17个字符。
奇怪的是,如果我删除文件中第70962行上的一行,甚至是第一行,并保存csv文件,那么导入运行正常。如果我替换了已删除的行,并运行导入,则会再次失败。
所以我甚至不确定如何确定问题所在。
如果我创建一个单列的新平面文件连接,我可以将整个文件导入单列表。但是只要我添加第一列分隔符(即第二列),它就会在同一行上失败。
目前我对如何进一步调试这个问题一无所知。
答案 0 :(得分:0)
您已经在问题中给出了答案;)
如果我删除文件中第70962行上方的一行,即使是第一行,也是如此 保存csv文件,导入运行正常。
文件中某处有一个破损的分隔符。当您在违规行之前删除任何数据时,分隔符的不匹配可能没有得到妥善处理,而只是保持打开状态直到文件的最后,程序将为您处理它。
检查您提到的行和该行上方行的行和列分隔符。