Při pohledu na dokumentaci Oracle na literály :
a dokumentaci prázdné sémantiky porovnávání uvádí:
Protože levá strana porovnání je CHAR(10)
a na pravé straně je textový doslovný text, pak je použita sémantika pro srovnání s prázdnými výplněmi a 'hello ' = 'hello'
je pravda.
Můžete to vidět na jednoduchém příkladu:
SELECT * FROM DUAL WHERE 'hello ' = 'hello';
Aktualizovat :
[TL;DR] Toto chování se objevilo ve všech verzích Oracle minimálně od Oracle 7 (vydáno v roce 1992). Přestal jsem hledat dokumentaci k vydáním starým přes dvě dekády, ale očekávám, že zjistíte, že toto chování bylo ve většině (všech?) verzích.
Zde je dokumentace pro různé verze:
- Oracle 12c Textové literály &prázdná sémantika
- Oracle 11g Textové literály &prázdná sémantika
- Oracle 10gR2 Textové literály &prázdná sémantika
- Oracle 9 Textové literály &prázdná sémantika
- Oracle 8 Textové literály &prázdná sémantika
- Oracle 7 Textové literály