Rumah >pangkalan data >tutorial mysql >Adakah Oracle Melayan Rentetan Kosong sebagai NULL?
Pengendalian unik rentetan kosong Oracle: NULL atau bukan-NULL?
Amalan Oracle 9i menyamakan rentetan kosong ('' ) dengan NULL telah mengelirukan ramai pembangun. Mengapakah jenis data yang direka untuk menyimpan aksara menyamakan rentetan yang sah dengan data yang hilang?
Untuk memahami keanehan ini, kita mesti menyelidiki sejarah Oracle. Sebelum kemunculan standard SQL, Oracle mentakrifkan lajur VARCHAR/VARCHAR2 untuk merawat rentetan kosong sebagai nilai NULL. Reka bentuk ini berpunca daripada tafsiran unik Oracle tentang NULL, yang merangkumi semua bentuk data yang hilang.
Apabila standard SQL datang dan mewujudkan perbezaan antara NULL dan rentetan kosong, Oracle menghadapi dilema. Menukar kelakuan lajur VARCHAR sedia ada akan memecahkan kod lama dan melanggar piawaian akan menyimpang daripada amalan industri. Untuk meminimumkan gangguan, Oracle membuat keputusan kontroversial untuk mengekalkan definisi asal.
Oracle mengakui bahawa amalan ini menyimpang daripada piawaian, tetapi memberi ruang untuk kemungkinan perubahan pada masa hadapan untuk diselaraskan dengan piawaian. Oleh itu, pembangun adalah bijak untuk memilih VARCHAR2 berbanding VARCHAR untuk keserasian kod mereka pada masa hadapan. Terdapat banyak spekulasi mengapa Oracle mengekalkan tingkah laku luar biasa ini, tetapi sebabnya kekal sebagai misteri rasmi, mungkin berakar umbi dalam keperluan untuk mengekalkan keserasian ke belakang dalam landskap piawaian yang sentiasa berubah.
Atas ialah kandungan terperinci Adakah Oracle Melayan Rentetan Kosong sebagai NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!