2013-07-19 105 views
0

需要幫助的人。我正在嘗試使用以下查詢來獲取表中的數據。它在SSMS中工作,但在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 

我要去哪裏錯了?

+0

什麼數據類型(大小)目的列? – christiandev

+0

長度爲20的字符串[DT_STR]。 – Akshay

+0

任何記錄的長度是否大於20? – christiandev

回答

1

您看到的錯誤是由於數據不兼容而發生的。

在第一CONVERT(VARCHAR(10)您指定的長度10

MSDN說,該默認VARCHAR大小爲30,這樣一個CAST(x AS VARCHAR)等於CAST(x AS VARCHAR(30))。 所以在這裏我們有30

長度最後,你有一列,其長度爲20,在這裏,我們有一個「數據的潛在損失」

+0

太棒了!! ......實際上是這個問題。只是刷新它,不會再給出錯誤。 – Akshay

相關問題