查询在SSMS中有效,但在SSIS中无效

时间:2013-07-19 10:54:01

标签: ssis

需要帮助的人。我试图使用以下查询从表中获取数据。它适用于SSMS,但在SSIS中会抛出错误。

SELECT  CONVERT(VARCHAR(10), GETDATE(), 120) AS col1
UNION ALL
SELECT  CAST (CustomerID AS VARCHAR)
FROM    tCustomer
UNION ALL
SELECT  CAST(COUNT(*) AS VARCHAR) AS col1
FROM    tCustomer

抛出错误

[OLE DB Source [1]] Error: There was an error with output column "col1" (35) on output "OLE DB Source Output" (11). The column status returned was: "The value could not be converted because of a potential loss of data.".

我想要实现的是

Header line yyyy-mm-dd
 --e.g. 2013-07-01
Data records
Trailer record
---e.g. 13480

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您看到的错误是由于数据不兼容而发生的。

在第一个CONVERT(VARCHAR(10)中,您将长度指定为10

MSDN说,默认varchar大小为30,因此CAST(x AS VARCHAR)等于CAST(x AS VARCHAR(30))。 所以这里的长度为30

最后你有一个列,长度为20,这里我们有“潜在的数据丢失”