Oracles einzigartiger Umgang mit leeren Zeichenfolgen: NULL oder nicht NULL?
Die Praxis von Oracle 9i, die leere Zeichenfolge ('' ) mit NULL gleichzusetzen, war für viele Entwickler verwirrend. Warum sollte ein Datentyp zum Speichern von Zeichen eine gültige Zeichenfolge mit fehlenden Daten gleichsetzen?
Um diese Besonderheit zu verstehen, müssen wir in die Geschichte von Oracle eintauchen. Vor der Einführung des SQL-Standards definierte Oracle VARCHAR/VARCHAR2-Spalten, um leere Zeichenfolgen als NULL-Werte zu behandeln. Dieses Design basiert auf Oracles einzigartiger Interpretation von NULL, die alle Formen fehlender Daten abdeckt.
Als der SQL-Standard auf den Markt kam und den Unterschied zwischen NULL und der leeren Zeichenfolge festlegte, stand Oracle vor einem Dilemma. Durch die Änderung des Verhaltens einer vorhandenen VARCHAR-Spalte wird alter Code beschädigt, und ein Verstoß gegen den Standard weicht von der Branchenpraxis ab. Um Störungen zu minimieren, traf Oracle die umstrittene Entscheidung, die ursprüngliche Definition beizubehalten.
Oracle erkennt an, dass diese Praxis vom Standard abweicht, lässt jedoch Raum für mögliche zukünftige Änderungen, um sie an den Standard anzupassen. Daher wäre es für Entwickler ratsam, VARCHAR2 gegenüber VARCHAR zu bevorzugen, um die zukünftige Kompatibilität ihres Codes zu gewährleisten. Es gab viele Spekulationen darüber, warum Oracle dieses ungewöhnliche Verhalten beibehält, aber der Grund bleibt ein offizielles Rätsel, das möglicherweise auf der Notwendigkeit beruht, die Abwärtskompatibilität in einer sich ständig ändernden Standardlandschaft aufrechtzuerhalten.
Das obige ist der detaillierte Inhalt vonBehandelt Oracle leere Zeichenfolgen als NULL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!