从文件:
Oracle数据库数字数据类型存储正,负定点和浮点数,零,无穷大以及作为操作未定义结果的值-“非数字”或
NAN。
据我所知,您只能在binary_float或binary_double列中获得NaN
。这些数据类型有自己的文字楠太,并有一个
isnan条件对他们来说,和
nanvl()功能来操纵它们。
获取此类值的一种方法示例是将零浮点数/双精度值除以零:
select 0f/0 from dual;0F/0----NaN
…因此,如果您看到NaN,则您的应用程序逻辑或基础数据可能已损坏。(请注意,您无法使用“普通”数字类型获得此值;
ORA-01476: divisoris equal to zero除非分子为浮点数或双精度数,否则您将获得此值)。
但是,您不会获得零或负数的NaN。也可能有一个字符串列,并且应用程序将单词“
NaN”放入其中,但是在许多级别上将数字存储为字符串是个坏主意,因此希望不是这样。



