Dokumentasi Oracle memperingatkan pengembang untuk masalah ini, kembali setidaknya sejauh versi 7.
Oracle memilih untuk mewakili NULLS dengan teknik "nilai yang tidak mungkin". Misalnya, NULL di lokasi numerik akan disimpan sebagai "minus nol", nilai yang tidak mungkin. Setiap nol nol yang dihasilkan dari perhitungan akan dikonversi menjadi positif nol sebelum disimpan.
Oracle juga memilih, secara keliru, untuk mempertimbangkan string VARCHAR dengan panjang nol (string kosong) sebagai nilai yang tidak mungkin, dan pilihan yang cocok untuk mewakili NULL. Ternyata string kosong jauh dari nilai yang tidak mungkin. Ini bahkan identitas di bawah operasi penggabungan string!
Dokumentasi Oracle memperingatkan para perancang dan pengembang basis data bahwa beberapa versi Oracle di masa depan mungkin memutuskan hubungan ini antara string kosong dan NULL, dan memecah kode apa pun yang bergantung pada asosiasi itu.
Ada teknik untuk menandai NULLS selain dari nilai yang tidak mungkin, tetapi Oracle tidak menggunakannya.
(Saya menggunakan kata "lokasi" di atas berarti persimpangan dari suatu baris dan kolom.)