sql >> Base de Datos >  >> RDS >> Oracle

Carácter en blanco ignorado en la cláusula where

Mirando la documentación de Oracle en literales :

y la documentación de semántica de comparación con relleno en blanco estados:

Dado que el lado izquierdo de la comparación es un CHAR(10) y el lado derecho es un texto literal, luego se usa la semántica de comparación rellenada con espacios en blanco y 'hello ' = 'hello' es verdad.

Puedes ver esto en el ejemplo simple:

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

Actualizar :

[TL;DR] Este comportamiento ha aparecido en todas las versiones de Oracle desde al menos Oracle 7 (lanzado en 1992). Dejé de buscar la documentación sobre lanzamientos de más de dos décadas, pero espero que descubras que este ha sido el comportamiento en la mayoría de (¿todas?) las versiones.

Aquí está la documentación para las distintas versiones: