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:
- Oracle 12c Literales de texto &semántica con relleno en blanco
- Oracle 11g Literales de texto &semántica con relleno en blanco
- Oracle 10gR2 Literales de texto &semántica con relleno en blanco
- Oracle 9 Literales de texto &semántica con relleno en blanco
- Oracle 8 Literales de texto &semántica con relleno en blanco
- Oracle 7 Literales de texto