Ja, det är så Oracle fungerar. Tomma strängar behandlas som nollor.
Du kan naturligtvis "fixa" detta på applikationsnivå - till exempel genom att lagra " "
värden som du föreslog - men fundera först på vad exakt är skillnaden mellan dina "tomma sträng"-värden jämfört med NULL
värderingar? Varför behöver du behandla dem annorlunda? Jag råkade också ut för detta dilemma, men fick oftast reda på att det finns väldigt få fall där jag verkligen behöver se skillnad.