O ile mi wiadomo, NaN można uzyskać tylko w binary_float lub binary_double
kolumna; te typy danych mają własne literały również dla NaN i istnieje is nan warunek
dla nich też, a nanvl() funkcja
by nimi manipulować.
Przykładem sposobu na uzyskanie takiej wartości jest podzielenie zerowej wartości zmiennoprzecinkowej/podwójnej przez zero:
select 0f/0 from dual;
0F/0
----
NaN
... więc jeśli widzisz NaNs, logika aplikacji lub podstawowe dane mogą być uszkodzone. (Zauważ, że nie możesz tego uzyskać przy "normalnym" typie liczby; otrzymujesz ORA-01476:dzielnik jest równy zero
chyba że licznik jest zmiennoprzecinkowy lub podwójny).
Nie otrzymasz jednak NaN dla liczb zerowych lub ujemnych. Możliwe jest również, że masz kolumnę ciągów, a aplikacja umieszcza w niej słowo „NaN”, ale przechowywanie liczb w postaci ciągów jest złym pomysłem na wielu poziomach, więc miejmy nadzieję, że tak nie jest.