Oracle
 sql >> база данни >  >> RDS >> Oracle

Кога/защо Oracle добавя NaN към ред в таблица на база данни

От документацията :

Доколкото ми е известно, можете да получите NaN само в binary_float или binary_double колона; тези типове данни имат свои собствени литерали и за NaN , и има is nan състояние за тях също и nanvl() функция да ги манипулирате.

Пример за начин за получаване на такава стойност е да разделите нулева стойност float/double на нула:

select 0f/0 from dual;

0F/0
----
NaN  

... така че ако виждате NaNs, логиката на приложението ви или основните данни може да са повредени. (Имайте предвид, че не можете да получите това с „нормален“ тип число; получавате ORA-01476:делител е равен на нула освен ако числителят не е float или double).

Въпреки това няма да получите NaN за нула или отрицателни числа. Възможно е също така да имате колона с низове и приложение поставя думата „NaN“, но съхраняването на числа като низове е лоша идея на много нива, така че се надяваме, че това не е така.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разберете служителите, които са отсъствали 3 последователни дни

  2. Как да съединя 2 заявки с различен брой записи и колони в oracle sql?

  3. oracle как да променя таблица добавяне на дял по диапазон интервал

  4. Защо получавам #### в колоната NUMBER след форматиране?

  5. Възможно ли е да се препраща към 10-ти и следващи заместващи низове в regexp_replace на Oracle?