This discussion is archived
4 Replies Latest reply: Jun 7, 2013 12:55 PM by zeroid RSS

BINARY_DOUBLE and support for double.PositiveInfinity

zeroid Newbie
Currently Being Moderated
I'm using latest ODAC with Entity Framework 4.1. I use the BINARY_DOUBLE type which gets mapped to a .NET double. I use store the results of double arithmetic which mostly works fine, however if the result is Infinitiy (double.PositiveInfinity) then Oracle throws this error when I SaveChanges:

ORA-01426: numeric overflow

Since Oracle BINARY_DOUBLE supposedly does support +Inf, -Inf and NaN (documented here: http://docs.oracle.com/cd/E13085_01/doc/timesten.1121/e13070/types.htm), why does this not work correctly through EF?  (NaN does work actually, its just the infinities that have this problem).

Is there a way to "fix-up" the result before I save it such that it gets stored as +Inf in Oracle?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points