Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Khi nào / Tại sao Oracle thêm NaN vào một hàng trong bảng cơ sở dữ liệu

Từ documentaton :

Theo như tôi biết, bạn chỉ có thể nhận NaN trong binary_float hoặc binary_double cột; các loại dữ liệu đó có nghĩa đen của riêng chúng cho NaN và có một là nan điều kiện cho họ cũng như nanvl () chức năng để thao túng chúng.

Một ví dụ về cách lấy giá trị như vậy là chia giá trị float / double 0 cho 0:

select 0f/0 from dual;

0F/0
----
NaN  

... vì vậy nếu bạn thấy NaN logic ứng dụng của bạn hoặc dữ liệu cơ bản có thể bị hỏng. (Lưu ý rằng bạn không thể nhận được điều này với loại số 'bình thường'; bạn nhận được ORA-01476:số chia bằng 0 trừ khi tử số là float hoặc double).

Tuy nhiên, bạn sẽ không nhận được NaN cho số 0 hoặc số âm. Cũng có thể bạn có một cột chuỗi và một ứng dụng đang đặt từ 'NaN' vào, nhưng lưu trữ các số dưới dạng chuỗi là một ý tưởng tồi ở nhiều cấp độ, vì vậy hy vọng rằng không phải như vậy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-04084:không thể thay đổi giá trị MỚI cho loại trình kích hoạt này

  2. dbms_output.put_line

  3. ORA-00906:thiếu dấu ngoặc đơn bên trái

  4. Quy trình nền

  5. ORA-00907:thiếu dấu ngoặc đơn bên phải