SSIS平面文件源文本被截断,或者目标代码页中的一个或多个字符不匹配
我试图将记录从逗号分隔的平面文件导入到SQL数据库文件中,当源文件的特定字段中包含50个以上字符时,我会得到一个“文本被截断或目标代码页中的一个或多个字符不匹配”。该字段的目标文件目标为1000个字符,因此这不应成为问题。我将文本文件中的“A123456789B123456789C123456789D123456789E123456789”缩小为“A123456789B123456789C123456789D123456789F”抛出错误SSIS平面文件源文本被截断,或者目标代码页中的一个或多个字符不匹配,ssis,Ssis,我试图将记录从逗号分隔的平面文件导入到SQL数据库文件中,当源文件的特定字段中包含50个以上字符时,我会得到一个“文本被截断或目标代码页中的一个或多个字符不匹配”。该字段的目标文件目标为1000个字符,因此这不应成为问题。我将文本文件中的“A123456789B123456789C123456789D123456789E123456789”缩小为“A123456789B123456789C123456789D123456789F”抛出错误 如何让它在截断之前允许更多字符?我在第二个答案中找到了答
如何让它在截断之前允许更多字符?我在第二个答案中找到了答案: 多亏了Eoan
最后,在源数据文件的高级编辑器中,在“输入和输出属性”选项卡上的“外部列”下,有一个默认为50的长度属性。将其更改为与目标数据库文件相匹配就成功了。另一个快速解决方案:
如果您有Microsoft Excel,请将CSV另存为XLSX。而且,导入XLSX而不是CSV我发现导入向导比CSV更了解Excel 即使导入excel文件,我也会遇到文本被截断的问题。我发现 SSIS系统通过检查前8行左右来确定EXCEL列的数据类型(荒谬)。因此,如果前8行的值都小于255个字符,而第8行之后的值大于255个字符,则会发生截断错误 因此,解决方法是在一个临时行中加入一个大(>255)字符 chars)值,然后运行集成。 完成后,删除临时行。 -ryan1999 (见答覆) 我的工作是:
- 运行预览李>
- 结果是 字段中有一个逗号,但谢天谢地,它有双引号 显示字段的分离李>
- 转到“选择数据源”对话框> 常规,添加了文本限定符:“(双引号)