Kijkend naar de Oracle-documentatie op literals :
en de documentatie van blanco vergelijkingssemantiek staten:
Aangezien de linkerkant van de vergelijking een CHAR(10)
. is en de rechterkant is een letterlijke tekst, dan worden blanco-opgevulde vergelijkingssemantiek gebruikt en 'hello ' = 'hello'
is waar.
U kunt dit zien in het eenvoudige voorbeeld:
SELECT * FROM DUAL WHERE 'hello ' = 'hello';
Bijwerken :
[TL;DR] Dit gedrag komt voor in alle versies van Oracle sinds in ieder geval Oracle 7 (uitgebracht in 1992). Ik ben gestopt met zoeken naar de documentatie over releases van meer dan twee decennia oud, maar ik verwacht dat je zult merken dat dit het gedrag is in de meeste (alle?) versies.
Hier is de documentatie voor de verschillende versies:
- Oracle 12c Letterlijke tekst &lege semantiek
- Oracle 11g Letterlijke tekst &lege semantiek
- Oracle 10gR2 Letterlijke tekst &lege semantiek
- Oracle 9 Tekstliteratuur &lege semantiek
- Oracle 8 Letterlijke tekst &lege semantiek
- Oracle 7 Letterlijke tekst