2012-07-30 97 views
0

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

我试图插入

99999999999999.99 
我使用 .NET调用程序

和插入表中的值。

所以我使用十进制(.NET类型)取值并将其作为NUMBER(OracleType)发送到Oracle Proc。 但不知何故,我从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) 
+0

什么是您使用的实际代码和确切的表结构? – Ben 2012-07-30 14:47:21

+0

编辑了该问题并添加了代码和结构。 – Nits 2012-07-30 15:04:04

回答

0

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

+0

参数使用%TYPE – Nits 2012-07-30 15:07:19

+0

定义您可以提供存储过程的代码吗? – Olaf 2012-07-30 17:26:39