Oracle 9i: Mengapa Rentetan Kosong Sama NULL dalam Lajur VARCHAR
Perlakuan Oracle 9i terhadap rentetan kosong ('') sebagai nilai NULL dalam lajur VARCHAR ialah artifak sejarah. Versi Oracle awal mereka bentuk lajur VARCHAR dan VARCHAR2 untuk mentafsir rentetan kosong sebagai bersamaan dengan nilai NULL. Ini berpunca daripada idea bahawa nilai yang hilang (rentetan kosong) secara fungsinya serupa dengan nilai yang tidak diketahui (NULL).
Standard SQL kemudiannya mentakrifkan perbezaan yang jelas antara NULL dan rentetan kosong. Ini memberikan Oracle dengan pilihan yang sukar: memecahkan aplikasi sedia ada dengan mengubah tingkah laku lajur VARCHAR, melanggar piawai atau mengekalkan keserasian ke belakang dengan mengorbankan pematuhan standard.
Oracle mengutamakan keserasian ke belakang, memilih untuk mengekalkan tingkah laku sedia ada VARCHAR. Untuk menangani ketidakserasian ini dengan standard SQL, Oracle memperkenalkan VARCHAR2, jenis data yang dijamin untuk mematuhi perbezaan standard antara NULL dan rentetan kosong dalam keluaran kemudian. Oleh itu, pembangun amat dinasihatkan untuk menggunakan VARCHAR2 untuk projek baharu dan memindahkan kod sedia ada untuk mengelakkan isu keserasian pada masa hadapan.
Atas ialah kandungan terperinci Mengapa Rentetan Kosong Dilayan sebagai NULL dalam Lajur VARCHAR Oracle 9i?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!