Ser på Oracle-dokumentationen om bogstaver :
og dokumentationen af blankpolstret sammenligningssemantik a> siger:
Da venstre side af sammenligningen er en CHAR(10)
og højre side er en bogstavelig tekst, så bruges blankpolstret sammenligningssemantik og 'hello ' = 'hello'
er sandt.
Du kan se dette i det simple eksempel:
SELECT * FROM DUAL WHERE 'hello ' = 'hello';
Opdater :
[TL;DR] Denne adfærd har optrådt i alle versioner af Oracle siden mindst Oracle 7 (udgivet i 1992). Jeg holdt op med at søge efter dokumentationen om udgivelser, der er over to årtier gamle, men jeg forventer, at du vil opdage, at dette har været adfærden i de fleste (alle?) versioner.
Her er dokumentationen for de forskellige versioner:
- Oracle 12c Tekst bogstaver &blankpolstret semantik
- Oracle 11g Tekstbogstaver &blankpolstret semantik
- Oracle 10gR2 Tekst bogstaver &blankpolstret semantik
- Oracle 9 Tekst bogstaver &blankpolstret semantik
- Oracle 8 Letterals tekst a> &blankpolstret semantik
- Oracle 7 Letterals tekst a>