状态码4上的SSIS包失败

时间:2012-12-07 20:37:03

标签: ssis

我创建了一个SSIS包,它从我们的数据库执行内联SQL查询,并且应该将内容输出到文本文件。我最初将文本文件以逗号分隔,但在进一步研究错误后更改为管道分隔。我还做了FirstName字段的子字符串,并确保SSIS占位符字段的长度匹配。错误消息如下:

[Customers Flat File [196]] Error: Data conversion failed. The data conversion for   
column "FirstName" returned status value 4 and status text "Text was truncated or one or more 
characters had no match in the target code page.".

我在OLE DB Source中使用的SQL语句如下:

SELECT     
dbo.Customer.Email, SUBSTRING(dbo.Customer.FirstName, 1, 100) AS FirstName, 
dbo.Customer.LastName, dbo.Customer.Gender, 
dbo.Customer.DateOfBirth, dbo.Address.Zip, dbo.Customer.CustomerID, dbo.Customer.IsRegistered
FROM         
dbo.Customer INNER JOIN
dbo.Address ON dbo.Customer.CustomerID = dbo.Address.CustomerID

我应该采取哪些其他方法来确保程序包运行而不会出错?

1 个答案:

答案 0 :(得分:1)

您是否尝试在SSMS中运行此查询?如果是这样,你获得了成功的结果吗? 如果您还没有尝试过,请将此查询粘贴到新的SSMS窗口中并等待它完成。 如果查询完成,那么我们不会遇到查询问题。包装内部可能有东西。

但是如果查询没有完成并失败,你知道在哪里看。

编辑

再想一想,您的客户来源是平面文件还是其他什么?看起来Customer表/文件中的值与源的输出元数据不匹配。再次检查您的来源。