如何解决SSIS包截断错误

时间:2018-10-18 19:55:13

标签: sql tsql sql-server-2008 ssis

SSIS错误:0xC02020A1
试图从CSV文件将数据导入SQL 2008,我遇到了以下错误。

> Error: 0xC02020A1 at Data Flow Task, Source – Distribution by xyz
> table from CSV [1]: Data conversion failed.
> The data conversion for column "ID" returned status value 4 and
> status text "Text was truncated or one or more characters had no match
> in the target code page.".    

以前使用过varchar,从来没有问题,我曾尝试将数据转换为Int,甚至增加了大小,但仍然收到此错误。我还尝试使用高级编辑器,将数据更改为几乎我认为可以覆盖该列上的数据类型的任何内容,但仍然出现错误。感谢您的建议

1 个答案:

答案 0 :(得分:0)

最有可能您的原始文件中有“不良”记录。

对于“坏”,可能是以下两个之一:1)无法隐式转换为字符串值; 2)字符串太大(超过8000)。

要对此进行调试,请将目标列更改为VARCHAR(MAX)

然后加载原始文件(不要忘记在标志文件连接管理器的Advanced页中将外部列的长度增加到8000)。

如果:

1)它已成功加载,请查询表where ISNUMERIC([that numeric column]) =0,如果返回任何内容,则该错误记录是加载时无法转换的。

2)它没有正确加载,请尝试查看该字段中的任何值是否超过8000个字符。 (如果无法手动检查,可以使用C#脚本)