我正在使用SSIS 2008 R2。我有派生列DER_Package_Size,我试图执行以下表达式:
(DT_NUMERIC,8,3)(SUBSTRING(TotalDBRecords,44,8))
这将返回一个数值,例如“00050000”。如果我将此表达式保留为原样,则此记录将作为“00050000.000”进入数据库。正确的值是00050.000。我现在想我需要将结果乘以.001以获得正确位置的小数。当我这样做到上面的表达式结束时,我遇到了问题。它将该派生列的精度和比例分别更改为12和6,而不是它应该是8和3。
对此的任何意见将不胜感激。提前谢谢。
答案 0 :(得分:0)
如评论中@mike sherrill'catcall'所述,将2个数字乘以精度3将导致数字具有精确度6.
您只需要另一个强制转换表达式即可将结果恢复为3:
(DT_NUMERIC,8,3)(DT_NUMERIC,8,3)(SUBSTRING(TotalDBRecords,44,8)) * .001