2013-07-05 32 views
0

不幸的是,沒有人真的對這個源數據庫有太多的瞭解,所以當我被告知傳入數據是FLOAT時,它看起來像是不是這樣。無法轉換爲數字數據類型(SSIS)

我有一個進入的領域有某種數字類型的,其值是101.15000000000001

我需要進入數值類型的SQL目標列(6,4)這一點。問題是無論我嘗試進行哪種轉換,我都會繼續出現類型轉換錯誤(0x80004005或0xc0049064)。我目前的場表達式爲:

(DT_NUMERIC,6,4)MY_FIELD 

當我嘗試這種類型,我得到一個算術溢出錯誤投SQL中的價值,所以我嘗試

(DT_NUMERIC,6,2)MY_FIELD 

這有效地截斷的SQL,但是,我仍然在SSIS中發生錯誤。關於如何截斷或舍入該值並將其轉換爲數字(6,4)數據類型的任何想法?

+1

可怕的黑客,但也許轉換爲字符串,並做一些子,拉後的小數位和4個字符截斷其餘的?看起來這個價值對我來說是一個浮動。你如何接收數據?文本導出?直接查詢?其他? –

+0

它來自ODBC連接。客戶端向我們發送了他記錄的數據類型,但我認爲無論他用於查看數據的DBMS如何轉換/轉換實際的底層數據類型(可能不同)。他聲稱這個字段的最大長度爲6,最多4位小數。我其實試圖轉換爲字符串,並對值做一個子字符串,然後進行類型轉換,但我仍然得到一個錯誤「轉換失敗,因爲數據值溢出了指定的類型。」 (0xC020907A) – Goose

+0

您在'Data Conversions'元素中收到了投射錯誤? – Justin

回答

0

嘗試在兩個操作:

string x = my_field 
float y = (float)x 

或float.Parse(X)

相關問題