Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Caractere em branco ignorado na cláusula where


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: