Gestion unique des chaînes vides par Oracle : NULL ou non-NULL ?
La pratique d'Oracle 9i consistant à assimiler la chaîne vide ('' ) à NULL a prêté à confusion pour de nombreux développeurs. Pourquoi un type de données conçu pour stocker des caractères équivaudrait-il à une chaîne valide à des données manquantes ?
Pour comprendre cette particularité, il faut se plonger dans l'histoire d'Oracle. Avant l'avènement du standard SQL, Oracle définissait les colonnes VARCHAR/VARCHAR2 pour traiter les chaînes vides comme des valeurs NULL. Cette conception découle de l'interprétation unique d'Oracle de NULL, qui couvre toutes les formes de données manquantes.
Lorsque le standard SQL est apparu et a établi la différence entre NULL et la chaîne vide, Oracle a été confronté à un dilemme. Changer le comportement d'une colonne VARCHAR existante brisera l'ancien code et la violation de la norme s'écartera des pratiques de l'industrie. Afin de minimiser les perturbations, Oracle a pris la décision controversée de conserver la définition originale.
Oracle reconnaît que cette pratique s'écarte de la norme, mais laisse place à d'éventuels changements futurs pour s'aligner sur la norme. Par conséquent, les développeurs feraient bien de préférer VARCHAR2 à VARCHAR pour une compatibilité future de leur code. Il y a eu beaucoup de spéculations sur la raison pour laquelle Oracle maintient ce comportement inhabituel, mais la raison reste un mystère officiel, peut-être enraciné dans la nécessité de maintenir une compatibilité ascendante dans un paysage de normes en constante évolution.
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!