Oracle still treats empty string as null

It is really a joke that Oracle still treats empty (zero length) strings as null, even in the year 2012! Recently I came (again) across this fact when we were adding support for Oracle 11g in our application.

I was shocked that this is still an issue. Although they may had their reasons in the past, this is really annoying nowadays. I can’t understand why they didn’t make a cut a some point, made the default SQL92 compliant and added an option for the legacy systems. If you don’t know what I’m talking about:

When you have an Entity that has a String attribute, put an empty String (“”) into it and persist it. When you read it back this String attribute is now null instead of “”! This leads to unfunny side-effects especially when you’re already supporting other databases like MySQL, MSSQL or PostgreSQL where this isn’t an issue. Be prepared to re-check queries, required attributes and JSF pages.

How are you handling the situation? Is there a new option I’m probably not aware of?