From the documentaton:
database Oracle tipi di dati numerici memorizzare numeri fissi e in virgola mobile positivi e negativi, zero, infinito e valori che sono il risultato di un indefinito funzionamento- "non un numero" o NAN
.
Per quanto ne so, è possibile ottenere solo NaN in una colonna binary_float or binary_double; questi tipi di dati hanno lo their own literals for NaN too e c'è anche uno is nan
condition e lo nanvl()
function per manipolarli.
Un esempio di un modo per ottenere tale valore è quello di dividere un/doppio valore zero float per zero:
select 0f/0 from dual;
0F/0
----
NaN
... quindi se stai vedendo NaNs la logica dell'applicazione o sottostanti dati potrebbe essere rotto. (Nota che non è possibile ottenere questo con un tipo di numero 'normale', si ottiene ORA-01476: divisor is equal to zero
a meno che il numeratore sia mobile o doppio).
Non si otterrà il NaN per zero o numeri negativi. È anche possibile avere una colonna di stringhe e un'applicazione sta inserendo la parola "NaN", ma memorizzare numeri come stringhe è una cattiva idea su molti livelli, quindi spero che non sia così.
fonte
2015-02-11 18:17:45
0 e valore negativo sono anche validi, quindi non sono NaN. Quindi il valore Garbage può essere una ragione, anche se devi fare uno sforzo per inserire un valore spazzatura. – GolezTrol