Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle 11.2.0.4, NAN, INF in Number column using Oracle.ManagedDataAccess

Ruslan GilmanovDec 9 2019 — edited Dec 12 2019

Hello.

I have some problem.

I am using Oracle 11.2.0.4, .Net (4.6.1) + Dapper (the freshest version: 2.0.30) + Oracle.ManagedDataAccess (the freshest version: 19.3.0).

In database i have created the table with column of number or integer type.

And after executing insert of:

- double.NaN

- double.NegativeInfinity

- double.PositiveInfinity

in number/integer types,

in column appears:

NAN

-INF (0 in integer type)

+INF

As far as i khnow (https://docs.oracle.com/database/121/TTSQL/types.htm#TTSQL124 )

only BINARY_DOUBLE and BINARY_FLOAT supports +Inf, -Inf, and NaN values but not oracle native datatypes (number)

If i try to select some values from my table using:

- select * from <table> where <column> is NAN

- select * from <table> where <column> is INFINITE

oracle returns ORA-01426 (Numeric overflow),

in addition to this OGG crashes during replication of such data: OGG-02570 Invalid numeric data detected. Error converting numeric from Oracle to ASCII on column

How can i fix it without changing .Net datatypes in source code (double -> decimal),

the solution of nulling such values will be enough,

maybe there are some settings in oracle Oracle.ManagedDataAccess config file of datatypes mapping,

but i cant find this:

https://docs.oracle.com/database/121/ODPNT/install.htm#ODPNT0006

thnaks, Ruslan

Comments
Post Details
Added on Dec 9 2019
5 comments
4,790 views