我创建了一个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
我应该采取哪些其他方法来确保程序包运行而不会出错?
答案 0 :(得分:1)
您是否尝试在SSMS中运行此查询?如果是这样,你获得了成功的结果吗? 如果您还没有尝试过,请将此查询粘贴到新的SSMS窗口中并等待它完成。 如果查询完成,那么我们不会遇到查询问题。包装内部可能有东西。
但是如果查询没有完成并失败,你知道在哪里看。
编辑
再想一想,您的客户来源是平面文件还是其他什么?看起来Customer表/文件中的值与源的输出元数据不匹配。再次检查您的来源。