oracle字段存入NaN值后查询显示为0问题
Posted 左直拳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle字段存入NaN值后查询显示为0问题相关的知识,希望对你有一定的参考价值。
今天发现了一件古怪的事情。C#代码运算过程中,不小心将一个Number型字段赋了NaN值,并保存到数据库,之后NHibernate就无法构造这条记录对应的对象了,提示什么
NHibernate.Exceptions.GenericADOException
HResult=0x80131600
Message=could not initialize a collection:
查阅数据库,如果用pl/sql developer,可以看到该字段显示为0,然后,它实际上又不等于0:
1、在pl/sql developer中,查询结果为0
2、实际上,它不等于0:
3、它好像是大于0:
4、它好像又不是NaN
5、在sqlplus中,它查询结果为空:
6、所以,它究竟是什么?
实在搞不懂,只好先记下来,转头去研究茴香豆的茴字,究竟有多少种写法。至于代码中,我暂时在实体类中加了防御:
double? tide_abs_rate1;
public virtual double? Tide_abs_rate1
get
return tide_abs_rate1;
set
tide_abs_rate1 = (value is Double.NaN) ? 0 : value;
以上是关于oracle字段存入NaN值后查询显示为0问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在更改 NaN 值后得到 RecursionError
小数点后面的0取不到 oracle数据库的字段类型为number(10,2)