Pengendalian Rentetan Kosong Oracle 9i sebagai NULL: Isu Legasi
Perlakuan Oracle 9i terhadap rentetan kosong sebagai nilai NULL telah lama menjadi punca kekeliruan bagi pembangun. Artikel ini meneroka sebab sejarah di sebalik pilihan reka bentuk ini.
Pembangunan awal Oracle (pertama kali dikeluarkan pada tahun 1979) mendahului standard SQL, yang membawa kepada pengendalian unik rentetan kosong dalam lajur VARCHAR/VARCHAR2. Reka bentuk awal menyamakan rentetan kosong dan nilai NULL, mungkin berdasarkan andaian kebolehtukaran mereka pada masa itu.
Piawaian SQL kemudiannya, bagaimanapun, membezakan dengan jelas NULL (mewakili data yang hilang) dan rentetan kosong (mewakili data yang sah, walaupun kosong). Ini memberikan Oracle cabaran yang ketara: mengubah tingkah laku akan memecahkan keserasian dengan aplikasi sedia ada.
Mengekalkan keserasian ke belakang telah diutamakan, menyebabkan tingkah laku tidak standard Oracle 9i yang berterusan. Perubahan yang meluas akan memerlukan semakan kod yang banyak merentasi pelbagai sistem, berisiko ralat dan gangguan yang meluas.
Walaupun Oracle telah membayangkan kemungkinan pelarasan pada masa hadapan untuk diselaraskan dengan standard SQL untuk jenis data VARCHAR, pembangun yang bekerja dengan Oracle 9i mesti sentiasa menyedari perbezaan ini daripada amalan SQL standard.
Atas ialah kandungan terperinci Mengapa Oracle 9i Melayan Rentetan Kosong sebagai NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!