我正在尝试将文件从Excel
导入SQL table
。当我使用数据转换从unicode string[DT_WSTR]
转换为string[DT_STR]
时,我会在某些列上出现截断错误。这是输出错误:
[数据转换[2]]错误:将“联系人姓名”(187)列转换为“DataContactName”列(105)时数据转换失败。转换返回状态值4和状态文本“文本被截断或目标代码页中的一个或多个字符不匹配。”。
因此数据流完成失败,但有些行被复制到sql table
。
是否有一些解决方法或解决方案是什么?
答案 0 :(得分:1)
看起来数据转换中为DataContactName定义的长度小于“联系人姓名”的长度。检查“联系人姓名”列的最大长度,并根据该值设置DataContactName大小。您看到插入的行很少,因为它们可能在更长的数据到达之前插入。
答案 1 :(得分:1)
这是你可以做的事情
Failure on error
更改为{ {1}}。虽然您一定要输出错误并记录到平面文件以检查丢失的数据。关于你的评论:
我在错误输出中添加了忽略截断错误,所有行都在sql表中复制。转换字符没有问题;或“á”。你可以告诉我我忽略了什么样的错误吗?
我建议您在将故障设置更改为Ignore on error
到Ignore Failure
后,对错误输出使用多播转换。然后将Multi-cast中的一个输出插入到SQL Server中,将其他输出插入到平面文件目标中。这样你就可以在平面文件中将数据导入SQL服务器以分析错误