From the documentaton:
bazy danych Oracle liczbowe typy danych przechowywać pozytywnych i negatywnych trwałych i zmiennoprzecinkowych liczb, zero, nieskończoność, i wartości, które są niezdefiniowane wynikiem funkcjonowania-„Not a Number” lub NAN
.
O ile mi wiadomo, można uzyskać tylko NaN w kolumnie binary_float or binary_double; te typy danych mają their own literals for NaN too, a także dla nich jest is nan
condition i nanvl()
function, aby nimi manipulować.
Przykładowy sposób, aby uzyskać taką wartość jest podzielenie zero pływaka/podwójnej wartości przez zero:
select 0f/0 from dual;
0F/0
----
NaN
... więc jeśli widzisz Nans logiki aplikacji lub bazowego dane mogą być zepsuty. (Zauważ, że nie możesz uzyskać tego z "normalnym" typem numeru, otrzymasz ORA-01476: divisor is equal to zero
, chyba że licznik jest zmienny lub podwójny).
Mimo to, nie otrzymasz NaN dla zerowej lub ujemnej liczby. Możliwe jest również, że masz kolumnę z napisami, a aplikacja umieszcza słowo "NaN", ale zapisywanie liczb jako ciągów jest złym pomysłem na wielu poziomach, więc mam nadzieję, że tak nie jest.
0 i wartość ujemna również są prawidłowe, więc nie są to NaN. Zatem wartość Garbage może być powodem, chociaż trzeba podjąć próbę wstawienia wartości śmieci. – GolezTrol