Oracle
 sql >> Base de données >  >> RDS >> Oracle

Caractère vide ignoré dans la clause where

En regardant la documentation Oracle sur les littéraux :

et la documentation de la sémantique de comparaison avec rembourrage en blanc indique :

Puisque le côté gauche de la comparaison est un CHAR(10) et le côté droit est un texte littéral, puis une sémantique de comparaison remplie de blancs est utilisée et 'hello ' = 'hello' est vrai.

Vous pouvez le voir dans l'exemple simple :

SELECT * FROM DUAL WHERE 'hello    ' = 'hello';

Mettre à jour :

[TL;DR] Ce comportement est apparu dans toutes les versions d'Oracle depuis au moins Oracle 7 (sorti en 1992). J'ai arrêté de chercher la documentation sur les versions datant de plus de deux décennies, mais je pense que vous constaterez que cela a été le cas dans la plupart (toutes ?) des versions.

Voici la documentation des différentes versions :