oracle数字数据类型问题



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

我正在尝试插入

99999999999999.99

我使用.NET来调用一个过程,并在表中插入值。

因此,我使用Decimal(.NETType)获取值,并将其作为NUMBER(OracleType)发送到OracleProc。但不知怎么的,我从过程中得到了四舍五入的值,即

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)

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

相关内容

最新更新