Examinando a documentação da Oracle em literais :
e a documentação da semântica de comparação com preenchimento em branco afirma:
Como o lado esquerdo da comparação é um
CHAR(10)
e o lado direito é um literal de texto, então a semântica de comparação com preenchimento em branco é usada e 'hello ' = 'hello'
é verdade. Você pode ver isso no exemplo simples:
SELECT * FROM DUAL WHERE 'hello ' = 'hello';
Atualizar :
[TL;DR] Esse comportamento apareceu em todas as versões do Oracle desde pelo menos o Oracle 7 (lançado em 1992). Parei de procurar a documentação sobre lançamentos com mais de duas décadas, mas espero que você descubra que esse tem sido o comportamento na maioria (todas?) das versões.
Aqui está a documentação para as várias versões:
- Oracle 12c Text Liteals &semântica de preenchimento em branco
- Oracle 11g Text Liteals &semântica de preenchimento em branco
- Oracle 10gR2 Text Liteals &semântica de preenchimento em branco
- Oracle 9 Text Liteals &semântica de preenchimento em branco
- Oracle 8 Text Liteals &semântica de preenchimento em branco
- Oracle 7 Text Liteals