我正在尝试将记录从逗号分隔的平面文件导入到SQL数据库文件中,并且我得到“文本被截断或目标代码页中的一个或多个字符不匹配”。当源文件在特定字段中有超过50个字符时。该字段的目标文件目标是1000个字符,因此不应该是一个问题。我把它缩小到文本文件中的“A123456789B123456789C123456789D123456789E123456789”导入,而“A123456789B123456789C123456789D123456789E123456789F”抛出错误。
如何在截断之前让它允许更多字符?
答案 0 :(得分:9)
我在第二个答案中找到答案: Importing CSV file into SQL server... 感谢Eoan。
最终,在源数据文件的高级编辑器中,在“输入和输出属性”选项卡上的“外部列”下,有一个默认为50的“长度”属性。更改该属性以匹配“目标数据库文件”就可以了。
答案 1 :(得分:1)
另一个快速解决方案:
如果您使用的是Microsoft Excel,请将CSV保存为XLSX。并且,导入XLSX而不是CSV我发现导入向导比CSV更好地理解Excel。
答案 2 :(得分:0)
即使我正在导入excel文件,我也遇到了文本被截断的问题。我发现了
SSIS系统通过检查前8行(荒谬)来确定EXCEL列的数据类型。因此,如果前8行中的所有行都小于255个字符,并且在第8行之后存在大于255个字符的值,则会发生截断错误。
所以解决方法是抛出一个大的临时行(> 255) chars)有问题的列中的值,然后运行Integration。 完成后,删除临时行。 -ryan1999
(见答案here)
我的工作是:
希望这有助于某人
答案 3 :(得分:0)
在我的情况下 - 将违规行移动为第一行(如果可以的话,因为csv / text文件可能非常大)。