SSIS 截断错误返回状态 4
SSIS truncated error returned status 4
我正在尝试将文件从 Excel
导入 SQL table
。当我通过数据转换从 unicode string[DT_WSTR]
转换为 string[DT_STR]
时,某些列出现截断错误。这是输出错误:
[Data Conversion [2]] Error: Data conversion failed while converting column "Contact Name" (187) to column "DataContactName" (105). The conversion returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
所以数据流以失败告终,但一些行被复制到 sql table
。
是否有一些解决方法或解决方案是什么?
数据转换中为DataContactName定义的长度似乎小于"Contact Name"的长度。检查列的最大长度 "Contact Name" 并根据它设置 DataContactName 大小。您看到插入的行很少,因为它们可能是在长度更大的数据到达之前插入的。
您可以执行以下操作
- 如果您确定您的转换是正确的并且 Excel 不包含任何在转换为 non-unicode/ASCII 文本时丢失的字符,因此不会导致截断,请将失败设置从
Failure on error
到 Ignore on error
。虽然你绝对应该输出错误并记录到一个平面文件以检查丢失的数据。
- 检查数据table的列;是否足以容纳所有可能的 excel 文件值?如果不确定,请尝试将 table 列转换为 VARCHAR(MAX)。如果是由于大小原因,您现在不应该收到截断错误。另一种方法是简单地为 VARCHAR(N) 选择目标大小,其中 N=2*excel 列的最大长度。
关于您的评论:
I added ignore truncation errors in error output and all rows were copied in sql table. There was no problem to convert characters like ; or "á". Can u brief me what kind of errors i ignored?
我建议您在将失败设置从 Ignore Failure
更改为 Redirect Row
后,对错误输出使用多播转换。然后将 Multi-cast 的输出之一插入 SQL 服务器,将另一个插入平面文件目标。通过这种方式,您可以将数据发送到 SQL 服务器以及平面文件中以分析错误
我正在尝试将文件从 Excel
导入 SQL table
。当我通过数据转换从 unicode string[DT_WSTR]
转换为 string[DT_STR]
时,某些列出现截断错误。这是输出错误:
[Data Conversion [2]] Error: Data conversion failed while converting column "Contact Name" (187) to column "DataContactName" (105). The conversion returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
所以数据流以失败告终,但一些行被复制到 sql table
。
是否有一些解决方法或解决方案是什么?
数据转换中为DataContactName定义的长度似乎小于"Contact Name"的长度。检查列的最大长度 "Contact Name" 并根据它设置 DataContactName 大小。您看到插入的行很少,因为它们可能是在长度更大的数据到达之前插入的。
您可以执行以下操作
- 如果您确定您的转换是正确的并且 Excel 不包含任何在转换为 non-unicode/ASCII 文本时丢失的字符,因此不会导致截断,请将失败设置从
Failure on error
到Ignore on error
。虽然你绝对应该输出错误并记录到一个平面文件以检查丢失的数据。 - 检查数据table的列;是否足以容纳所有可能的 excel 文件值?如果不确定,请尝试将 table 列转换为 VARCHAR(MAX)。如果是由于大小原因,您现在不应该收到截断错误。另一种方法是简单地为 VARCHAR(N) 选择目标大小,其中 N=2*excel 列的最大长度。
关于您的评论:
I added ignore truncation errors in error output and all rows were copied in sql table. There was no problem to convert characters like ; or "á". Can u brief me what kind of errors i ignored?
我建议您在将失败设置从 Ignore Failure
更改为 Redirect Row
后,对错误输出使用多播转换。然后将 Multi-cast 的输出之一插入 SQL 服务器,将另一个插入平面文件目标。通过这种方式,您可以将数据发送到 SQL 服务器以及平面文件中以分析错误