2012-11-12 84 views
2

情況:包含數字的列以字符串形式導入SSIS。我們將根據數據類型預期使用數據轉換任務將字符串轉換爲整數或十進制數。配置錯誤輸出用於將錯誤和截斷重定向到腳本任務。SSIS數據轉換數量強制四捨五入

問題:的SSIS數據轉換轉換的數值四捨五入,以適應新的數據類型,並且不丟一個轉換或截斷誤差。行重定向不會發生在數字上。例如,當需要DT_DECIMAL (10,2),但轉換值爲12.123時,該值會舍入爲12.12,且不會有錯誤或截斷重定向。我使用數據查看器來驗證數據轉換任務是否導致四捨五入。來自非數字字符的錯誤確實會導致該行重定向。

所需的輸出:我們希望有拋出信號,如果數據不匹配所需的數據類型,例如DT_DECIMAL (10,2)錯誤。

有什麼辦法可以不用數字轉換任務的數字,還是需要另一個任務來做到這一點?

+1

您的意思是數據轉換**轉換**(數據流的一部分)? –

+0

是的,我的意思是數據轉換轉換。我更新了該帖子以反映您的更正。 – kahless364

回答

1

您可能需要另一個任務,用於數據轉換的腳本組件提供了最大的靈活性。 您將能夠自定義代碼中的數據轉換和錯誤輸出。

+0

不幸的是,這是我們最終不得不做的。 – kahless364

1

如果打開數據轉換轉換編輯器,則會出現一個按鈕來配置錯誤輸出。從那裏,你可以設置截斷的行爲以任何你喜歡的方式行事。

+0

我正在使用配置錯誤輸出將錯誤和截斷重定向到腳本任務。問題是行重定向不會發生在數字上。例如,當需要DT_DECIMAL(10,2),但轉換值爲12.123時,該值將四捨五入爲12.12,不會發生錯誤或截斷重定向。我使用數據查看器來驗證數據轉換任務是否導致四捨五入。來自非數字字符的錯誤確實會導致該行重定向。 (更新帖子以反映此評論) – kahless364