0

需要帮助的家伙。我正在尝试使用以下查询来获取表中的数据。它适用于 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

我哪里错了?

4

1 回答 1

1

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

首先CONVERT(VARCHAR(10),您将长度指定为10

MSDN说,默认的 varchar 大小是 30,所以做一个CAST(x AS VARCHAR)equals CAST(x AS VARCHAR(30))。所以这里我们有长度30

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

于 2013-07-19T11:50:00.757 回答