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.