Osservando la documentazione Oracle su literals :
e la documentazione di semantica di confronto riempita in bianco afferma:
Poiché il lato sinistro del confronto è un CHAR(10)
e il lato destro è un letterale di testo, quindi viene utilizzata la semantica di confronto riempita in bianco e 'hello ' = 'hello'
è vero.
Puoi vederlo nel semplice esempio:
SELECT * FROM DUAL WHERE 'hello ' = 'hello';
Aggiorna :
[TL;DR] Questo comportamento è apparso in tutte le versioni di Oracle almeno da Oracle 7 (rilasciato nel 1992). Ho smesso di cercare la documentazione sulle versioni più vecchie di due decenni, ma mi aspetto che scoprirai che questo è stato il comportamento nella maggior parte (tutte?) delle versioni.
Ecco la documentazione per le varie versioni:
- Oracle 12c Testo letterale &semantica imbottita in bianco
- Oracle 11g Testo letterale &semantica imbottita in bianco
- Oracle 10gR2 Testo letterale &semantica imbottita in bianco
- Oracle 9 Testo letterale &semantica imbottita in bianco
- Oracle 8 Testo letterale &semantica imbottita in bianco
- Oracle 7 Testi letterali