2010-08-09 34 views
0

我正在使用SSIS將平坦txt文件導入到SQL Server 2005中。問題是,在txt文件-1和0之間負數處於制,沒有前導零,例如:用SSIS 2005導入負數字

-.15

如果我使用插入這樣的數字到我的數據庫普通插入語句它的工作原理沒有抱怨。但是,如果SSIS遇到此類號碼,則會報告錯誤。如果我在txt文件更改數量:

-0.15

SSIS正常工作。這是一個已知的問題,是否有任何方法可以解決它,而無需更改源txt文件中的值?

+0

不是一個完整的答案,但是:1.語言/小數分隔符設置與導入不同(除了從管理工作室發射SQL),以及2:您是否正確設置字段類型? (http://www.bimonkey.com/2009/07/flat-file-sources-and-the-decimal-data-type/)。 3:如果一切都失敗了,也許你可以導入一個不同的類型,並在導入後的數據上運行你自己的過程。 – Tobiasopdenbrouw 2010-08-09 10:32:05

+0

謝謝,托比亞斯。小數點分隔符正常,數據類型也正常。至於第3點的建議,你是對的,但如果一切都失敗了,我會這樣做。 – Leo 2010-08-09 20:12:21

+0

嗯,實際上,這個問題並不僅僅出現在-1和0之間的負數小數,而是0和1之間的正數小數,例如: .1 – Leo 2010-08-09 20:13:26

回答

0

平面文件源端的數據類型和目標端的數據類型是什麼?您是否嘗試過使用明確的數據轉換步驟?這聽起來像是一個隱式的轉換正在發生,它不能正常工作,所以明確設置類型可能會解決問題。

+0

它是浮點數,我使用DT_R8作爲數據類型。正如我已經回答Tobias所說,問題是由我的區域設置中的不同小數點分隔符引起的。無論如何感謝您提供明確的數據轉換提示 - 閱讀關於此選項的一些文章迫使我學習更多關於SSIS的知識。 – Leo 2010-08-10 12:02:38