Maison >base de données >tutoriel mysql >Pourquoi les chaînes vides sont-elles traitées comme NULL dans les colonnes VARCHAR d'Oracle 9i ?

Pourquoi les chaînes vides sont-elles traitées comme NULL dans les colonnes VARCHAR d'Oracle 9i ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-22 05:07:12417parcourir

Why Are Empty Strings Treated as NULL in Oracle 9i's VARCHAR Columns?

Oracle 9i : Pourquoi les chaînes vides sont égales à NULL dans les colonnes VARCHAR

Le traitement par Oracle 9i des chaînes vides ('') en tant que valeurs NULL dans les colonnes VARCHAR est un artefact historique. Les premières versions d'Oracle concevaient les colonnes VARCHAR et VARCHAR2 pour interpréter une chaîne vide comme équivalente à une valeur NULL. Cela découle de l'idée qu'une valeur manquante (chaîne vide) est fonctionnellement identique à une valeur inconnue (NULL).

Le standard SQL a par la suite défini une distinction claire entre les chaînes NULL et vides. Cela a placé Oracle devant un choix difficile : briser les applications existantes en modifiant le comportement de la colonne VARCHAR, violer la norme ou maintenir la compatibilité ascendante au détriment de la conformité à la norme.

Oracle a donné la priorité à la rétrocompatibilité, en choisissant de conserver le comportement existant de VARCHAR. Pour résoudre cette incompatibilité avec la norme SQL, Oracle a introduit VARCHAR2, un type de données garanti pour adhérer à la distinction de la norme entre les chaînes NULL et les chaînes vides dans les versions ultérieures. Par conséquent, il est fortement conseillé aux développeurs d'utiliser VARCHAR2 pour les nouveaux projets et de migrer le code existant pour éviter de futurs problèmes de compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn