SSIS平面文件数据源 - 文本被截断或一个或多个字符在目标代码页中没有匹配

4
我正在尝试从逗号分隔的平面文件中将记录导入到SQL数据库文件中,但是当源文件中的特定字段超过50个字符时,会出现“文本被截断或一个或多个字符在目标代码页中没有匹配项”的错误。该字段的目标文件目标为1000个字符,因此这不应该是问题。我将其缩小到文本文件中的“A123456789B123456789C123456789D123456789E123456789”已经成功导入,而“A123456789B123456789C123456789D123456789E123456789F”则抛出了错误。
我该如何使其允许更多字符而不被截断?
4个回答

9

我在以下问题的第二个答案中找到了答案: 将CSV文件导入SQL服务器 感谢Eoan。

最终解决方法是,在源数据文件的高级编辑器中,在Input和Output Properties选项卡下的External Columns中,有一个长度属性,默认为50。将其更改为匹配目标数据库文件即可。


1

另一个快速的解决方案:

如果你有 Microsoft Excel,将 CSV 文件保存为 XLSX 格式。然后,导入 XLSX 文件而不是 CSV 文件。我发现导入向导更好地理解 Excel 文件而不是 CSV 文件。


0
即使我正在导入Excel文件,我也遇到了文本被截断的问题。我发现 SSIS 系统通过检查前8行左右(荒谬)来确定EXCEL列的数据类型。因此,如果前8行都小于255个字符,并且在第8行后出现大于255个字符的值,则会发生截断错误。因此,解决方法是在有问题的列中添加一个包含大于255个字符的临时行,然后运行集成。完成后,删除临时行。-ryan1999
(请参见答案here
我的解决方法是:
1. 添加另一列,其中包含将被截断的列的长度 2. 从大到小对该列进行排序 3. 删除该列。
希望这能帮助到某人

0
在我的情况下——将有问题的行移动到第一行(如果可以的话,因为 CSV/文本文件可能会非常大)。
  • 运行预览。
  • 结果发现该字段中有一个逗号,但幸运的是它有双引号来显示字段之间的分隔符。
  • 转到“选择数据源”对话框 > 通用,添加文本限定符:" (双引号)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接