Rumah >pangkalan data >tutorial mysql >Adakah Oracle Melayan Rentetan Kosong sebagai NULL?

Adakah Oracle Melayan Rentetan Kosong sebagai NULL?

Barbara Streisand
Barbara Streisandasal
2025-01-22 04:52:12297semak imbas

Does Oracle Treat Empty Strings as 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn