2013-10-07 74 views
0

我在SSIS中派​​生列計算沒有返回正確值時出現問題。爲了給出一些背景知識,由於溢出問題(已解決),我必須更改計算格式,請參閱此處 - SSIS - Derived Column Calculation ErrorSSIS派生列計算問題

現在,舊的和新的計算在SSIS中返回不同的值,即使它們都是數學在.net,excel和SQL中執行時相同並返回相同的值。

在.net -

decimal test1 = Convert.ToDecimal((415 * 415 * 415) * 0.000000030940000); 
decimal test2 = Convert.ToDecimal((0.000000030940000 * 415 * 415 * 415));  

都返回2.2113862225

在SSIS -

test1 = ((415 * 415 * 415) * 0.000000030940000) 
test2 = (0.000000030940000 * 415 * 415 * 415) 

返回不同的值(TEST1 = 2.2113862225和TEST2 = 2.211535)

有趣,SSIS將test1視爲數字(38,6)和t est2作爲數字(27,15)....

有沒有人遇到過這個問題?

我真的不想重新考慮整個包來使用.net計算,但這將是我最後的解決方案。

回答

0

如果任何人有這個問題 - 我沒有找到解決辦法,但沒有實現一個解決方法 -

而是在派生列做計算 -

  1. 使用派生列成分將該變量設置爲0並將其設置爲0
  2. 添加數據轉換並將其切換爲所需的數據類型(本例中爲float)
  3. 添加一個OLE DB命令來調用存儲過程來執行計算,輸出參數fi lling在第1點創建的變量。