Pokud je mi známo, můžete NaN získat pouze v binary_float nebo binary_double
sloupec; tyto datové typy mají své vlastní literály i pro NaN a je zde je nan stav
i pro ně a nanvl()
funkce
manipulovat s nimi.
Příkladem způsobu, jak získat takovou hodnotu, je vydělení nulové float/double hodnoty nulou:
select 0f/0 from dual;
0F/0
----
NaN
... takže pokud vidíte NaN, vaše aplikační logika nebo základní data mohou být narušeny. (Všimněte si, že to nemůžete získat s „normálním“ typem čísla; dostanete ORA-01476:dělitel je roven nule
pokud není čitatel plovoucí nebo dvojitý).
Pro nula nebo záporná čísla však NaN nedostanete. Je také možné, že máte sloupec řetězce a aplikace do něj vkládá slovo 'NaN', ale ukládání čísel jako řetězců je na mnoha úrovních špatný nápad, takže doufejme, že tomu tak není.