1

我创建了一个 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 源中使用的 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

我应该进行哪些其他修复以确保程序包正常运行?

4

1 回答 1

1

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

但是如果查询没有完成并且失败,你就知道去哪里找了。

编辑

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

于 2012-12-07T21:53:22.757 回答