0

我的表中有一个字段,其数据类型为NUMBER (16,2).

我正在尝试插入

99999999999999.99

我正在使用.NET调用过程并将值插入表中。

所以我使用十进制(.NET 类型)来获取值并将其作为NUMBER(OracleType)发送到 Oracle Proc。但不知何故,我从过程中得到了四舍五入的值,即

100000000000000

它发生在有效数字为 14 或更多时。

我尝试了不同的组合,NUMBER(17,2)但没有任何效果。

可能是什么问题?

这是我正在使用的

Decimal numberField = Convert.ToDecimal(value);
OracleParameter oraPram;
            oraPram = new OracleParameter("paramName", OracleType.Number);
            oraPram.Direction = ParameterDirection.Input;
            oraPram.Value = numberField;

表结构是

Id      ----  Number
Quant   ----- Number(16,2)
4

1 回答 1

0

很难用您提供的详细程度来判断,但我猜您正在使用的 Oracle 存储过程的参数类型是 NUMBER。它应该使用%TYPE属性来定义。

于 2012-07-30T15:03:52.047 回答