Yup, begitulah fungsi Oracle. String kosong diperlakukan sebagai null.
Anda tentu saja dapat "memperbaiki" ini di tingkat aplikasi - misalnya dengan menyimpan " "
nilai seperti yang Anda sarankan - tetapi pertama-tama pertimbangkan, apa sebenarnya perbedaan dengan nilai "string kosong" Anda dibandingkan dengan NULL
nilai-nilai? Mengapa Anda perlu memperlakukan mereka secara berbeda? Saya juga pernah mengalami dilema ini, tetapi biasanya menemukan bahwa ada sangat sedikit kasus di mana saya benar-benar perlu membedakannya.