Da documentação :
Tanto quanto sei, você só pode obter NaN em um binary_float ou binary_double coluna; esses tipos de dados têm seus próprios literais para NaN , e há um
is nan condição
para eles também, e o nanvl() função
para manipulá-los. Um exemplo de uma maneira de obter esse valor é dividir um valor zero float/double por zero:
select 0f/0 from dual;
0F/0
----
NaN
... portanto, se você estiver vendo NaNs, sua lógica de aplicativo ou dados subjacentes podem estar quebrados. (Observe que você não pode obter isso com um tipo de número 'normal'; você obtém
ORA-01476:divisor is equal to zero
a menos que o numerador seja float ou double). Você não obterá NaN para números zero ou negativos. Também é possível que você tenha uma coluna de string e um aplicativo esteja colocando a palavra 'NaN', mas armazenar números como strings é uma má ideia em muitos níveis, então espero que não seja o caso.