2012-09-03 81 views
1

我已經創建了一個SQL OLEDB數據源(SQL Server)的一個轉換SQL語句,我有以下命令文本:SSIS - 數據源包含

select replace(convert(varchar(10), dob, 111), '/', '-') As DOB FROM Person 

我得到一個警告上執行的,上面寫着: OLE DB Source [1]]警告:截斷可能是由於從長度爲8000的數據庫列「DOB」中檢索數據到長度爲10的數據流列「DOB」而發生。

當我嘗試更改外部列從8000到10(如查詢中所述),設計師自動將其更改回來。我認爲外部列表示數據源中的元數據。數據源中的dob(參見上面的查詢)是一個varchar(10)。爲什麼它必須有8000的長度?我沒有太多的SSIS經驗。

回答

4

我找到了解決方案。我不得不這樣做:

select cast(replace(convert(varchar(10), dob, 111), '/', '-') As varchar(10)) As DOB from Person 
2

還有另一種解決辦法來克服這個爲:可以忽略這些錯誤,並通過設置「來源」塊的「錯誤」輸出相應的屬性執行從「截斷」誤差修改包標籤..

+0

謝謝。我正在尋找解決方案,但無論如何,我發現這有幫助。 – w0051977