我的表中有一个字段的数据类型为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
属性来定义它。