【发布时间】:2013-10-07 22:47:43
【问题描述】:
在 SSIS 的派生列中的计算存在一些问题。
我正在尝试执行以下计算 -
4206 + ((4206 * 4206) * 0.000150000000000) + ((4206 * 4206 * 4206) * 0.000000010000000)
我收到一个错误 -
**The magnitude of the result of a binary operation overflows the maximum size for result data type**
将此计算粘贴到我的 C# Web 应用程序会导致类似问题 -
**The operation overflows at compile time in checked mode**
有人抱怨这个部分 - 4206 * 4206 * 4206。
也可以在 Web 应用程序中通过更改它来解决它4206 * 4206 * 4206L,但我不知道如何在 SSIS 包中解决这个问题。
以前有人遇到过这个问题吗?任何想法将不胜感激。
提前致谢。
编辑
溢出异常现已解决,但新旧计算返回的值略有不同,例如使用 415 作为输入值而不是 4206 -
旧计算值 = 419.014582 新计算值 = 419.042100
确切的计算是-
旧 - InputValue + ((InputValue * InputValue) * (DT_DECIMAL,20)@[User::SquaredValue]) + ((InputValue * InputValue * InputValue) * (DT_DECIMAL,20)@[User::CubicValue])
新 - InputValue + (((DT_DECIMAL,20)@[User::SquaredValue] * InputValue * InputValue)) + (((DT_DECIMAL,20)@[User::CubicValue] * InputValue * InputValue * InputValue))
编辑
关于计算中的细微差异的第二个问题作为一个新问题打开。
【问题讨论】:
标签: sql-server ssis